diff options
Diffstat (limited to 'rsa.h')
-rw-r--r-- | rsa.h | 30 |
1 files changed, 21 insertions, 9 deletions
@@ -1,15 +1,27 @@ #pragma once +#include <string> +#include <utility> #include "bigint.h" -struct PublicKey{ - Bigint mod,exp; -}; +namespace RSA{ -struct PrivateKey{ - PublicKey pub; - Bigint pexp; -}; + struct PublicKey{ + Bigint mod,exp; + }; -Bigint encrypt(const PublicKey&,Bigint); -Bigint decrypt(const PrivateKey&,Bigint); + struct PrivateKey{ + PublicKey pub; + Bigint pexp; + }; + + Bigint encrypt(const PublicKey &key,Bigint msg); + Bigint decrypt(const PrivateKey &key,Bigint msg); + + PrivateKey genkey(int nbits); //nbits is target number of bits of modulus + PrivateKey genkey(int nbits,const std::string &password); //generates key seeded by password + + std::pair<std::string,std::string> exportkey(const PrivateKey&); //returns {pub,priv} + PrivateKey importkey(const std::string &pub,const std::string &priv); + +} |