43 #ifndef _DWMAUTHED25519KEYS_HH_ 44 #define _DWMAUTHED25519KEYS_HH_ 47 #include <cryptopp/cryptlib.h> 48 #include <cryptopp/xed25519.h> 49 #include <cryptopp/base64.h> 50 #include <cryptopp/filters.h> 51 #include <cryptopp/osrng.h> 53 #include "DwmDescriptorIOCapable.hh" 54 #include "DwmFileIOCapable.hh" 55 #include "DwmStreamIOCapable.hh" 56 #include "DwmStreamedLengthCapable.hh" 72 :
public CryptoPP::ed25519PublicKey,
73 public Dwm::DescriptorIOCapable,
public Dwm::FileIOCapable,
74 public Dwm::StreamIOCapable,
public Dwm::StreamedLengthCapable
78 : CryptoPP::ed25519PublicKey()
81 PublicKey(
const CryptoPP::ed25519PublicKey & key)
82 : CryptoPP::ed25519PublicKey(key)
87 std::string ToString()
const;
88 std::string ToBase64String()
const;
89 bool FromString(
const std::string & s);
90 bool FromBase64String(
const std::string & s);
92 std::istream & Read(std::istream & is)
override;
93 std::ostream & Write(std::ostream & os)
const override;
94 size_t Read(FILE *f)
override;
95 size_t Write(FILE *f)
const override;
96 ssize_t Read(
int fd)
override;
97 ssize_t Write(
int fd)
const override;
98 uint32_t StreamedLength()
const override;
103 bool operator == (
const PublicKey & pk)
const;
110 :
public CryptoPP::ed25519PrivateKey,
111 public Dwm::DescriptorIOCapable,
public Dwm::FileIOCapable,
112 public Dwm::StreamIOCapable,
public Dwm::StreamedLengthCapable
116 : CryptoPP::ed25519PrivateKey()
119 PrivateKey(
const CryptoPP::ed25519PrivateKey & key)
120 : CryptoPP::ed25519PrivateKey(key)
123 bool IsValid()
const;
125 std::string ToString()
const;
126 std::string ToBase64String()
const;
127 bool FromString(
const std::string & s);
128 bool FromBase64String(
const std::string & s);
130 std::istream & Read(std::istream & is)
override;
131 std::ostream & Write(std::ostream & os)
const override;
132 size_t Read(FILE *f)
override;
133 size_t Write(FILE *f)
const override;
134 ssize_t Read(
int fd)
override;
135 ssize_t Write(
int fd)
const override;
136 uint32_t StreamedLength()
const override;
148 :
public std::pair<PrivateKey,PublicKey>
162 : std::pair<
PrivateKey,PublicKey>(privKey,publicKey)
171 this->first = keys.first;
172 this->second = keys.second;
209 bool Load(
const std::string & privKeyPath, std::string & name);
216 static KeyPair CreateKeyPair();
223 #endif // _DWMAUTHED25519KEYS_HH_ Encapsulates a readable and writable private key.
Definition: DwmAuthEd25519Keys.hh:109
const PublicKey & Public() const
Returns a const reference to the public key.
Definition: DwmAuthEd25519Keys.hh:196
Encapsulates a private/public key pair.
Definition: DwmAuthEd25519Keys.hh:147
PrivateKey & Private()
Returns a mutable reference to the private key.
Definition: DwmAuthEd25519Keys.hh:188
KeyPair()
Default constructor.
Definition: DwmAuthEd25519Keys.hh:154
const PrivateKey & Private() const
Returns a const reference to the private key.
Definition: DwmAuthEd25519Keys.hh:180
KeyPair & operator=(const KeyPair &keys)
operator =
Definition: DwmAuthEd25519Keys.hh:168
KeyPair(const PrivateKey &privKey, const PublicKey &publicKey)
Construct from a private and public key.
Definition: DwmAuthEd25519Keys.hh:161
PublicKey & Public()
Returns a mutable reference to the public key.
Definition: DwmAuthEd25519Keys.hh:204
bool operator==(const PrivateKey &pk) const
operator ==