#pragma once #include #include #include namespace drp::util::crypto { /** * Represent an RSA private key. */ class RsaPrivateKey { public: RsaPrivateKey(); explicit RsaPrivateKey(const std::vector& data, int padMode); [[nodiscard]] std::vector decrypt(const std::vector& encryptedData) const; [[nodiscard]] std::vector serialize() const; static RsaPrivateKey deserialize(std::vector& data); private: [[nodiscard]] std::unique_ptr getOpenSslKey() const; int padMode {}; std::vector _data; }; }