vk-lang-cpp/andeme

Добавить в common компонент для работы с private/public ключами

Closed this issue · 3 comments

Компонент должен позволять:

  • генерировать пару private и public ключей
  • хранить ключи

Например алгоритм RSA

Предлагаю следующий вариант интерфейса

class PublicKey {
 public:
  bool verify(const std::string& sign, const std::string& data) const;
  // Проверяет что подпись sign для данных data валидна (т.е. подписано
  // соответствующим PrivateKey
};
 
class PrivateKey {
 public:
  std::string sign(const std::string& data) const;
  // Подписывает data данные
};
 
class RSAUtil {
 public:
  static std::pair<PrivateKey, PublicKey> generate();
  // Генерирует новую пару public и private ключей
};

Предлагаю следующий вариант интерфейса

class PublicKey {
 public:
  bool verify(const std::string& sign, const std::string& data) const;
  // Проверяет что подпись sign для данных data валидна (т.е. подписано
  // соответствующим PrivateKey
};
 
class PrivateKey {
 public:
  std::string sign(const std::string& data) const;
  // Подписывает data данные
};
 
class RSAUtil {
 public:
  static std::pair<PrivateKey, PublicKey> generate();
  // Генерирует новую пару public и private ключей
};

по поводу PrivateKey и verify эти функции можно выполнить через методы Load и private/public key из методов openssl/rsa.h и /bio.h,