join 1.0
lightweight network framework library
Loading...
Searching...
No Matches
signature.hpp
Go to the documentation of this file.
1
25#ifndef JOIN_CRYPTO_SIGNATURE_HPP
26#define JOIN_CRYPTO_SIGNATURE_HPP
27
28// libjoin.
29#include <join/digest.hpp>
30
31// C++.
32#include <system_error>
33#include <future>
34
35namespace join
36{
40 class Signaturebuf : public Digestbuf
41 {
42 public:
47 Signaturebuf (const std::string& algo);
48
53 Signaturebuf (const Signaturebuf& other) = delete;
54
60 Signaturebuf& operator= (const Signaturebuf& other) = delete;
61
66 Signaturebuf (Signaturebuf&& other) = default;
67
74
78 virtual ~Signaturebuf () = default;
79
85 BytesArray sign (const std::string& privKey);
86
93 bool verify (const BytesArray& sig, const std::string& pubKey);
94 };
95
99 class Signature : public std::ostream
100 {
101 public:
107
112 Signature (const Signature& other) = delete;
113
119 Signature& operator= (const Signature& other) = delete;
120
125 Signature (Signature&& other);
126
133
137 virtual ~Signature () = default;
138
144 BytesArray sign (const std::string& privKey);
145
154 static BytesArray sign (const char* data, std::streamsize size, const std::string& privKey,
155 Digest::Algorithm algo);
156
164 static BytesArray sign (const BytesArray& data, const std::string& privKey, Digest::Algorithm algo);
165
173 static BytesArray sign (const std::string& data, const std::string& privKey, Digest::Algorithm algo);
174
181 bool verify (const BytesArray& signature, const std::string& pubKey);
182
192 static bool verify (const char* data, std::streamsize size, const BytesArray& signature,
193 const std::string& pubKey, Digest::Algorithm algo);
194
203 static bool verify (const BytesArray& data, const BytesArray& signature, const std::string& pubKey,
204 Digest::Algorithm algo);
205
214 static bool verify (const std::string& data, const BytesArray& signature, const std::string& pubKey,
215 Digest::Algorithm algo);
216
217 private:
219 Signaturebuf _sigbuf;
220 };
221}
222
223#endif
Algorithm
algorithm.
Definition digest.hpp:167
digest stream buffer.
Definition digest.hpp:91
class used to manage signature.
Definition signature.hpp:100
Signature & operator=(const Signature &other)=delete
copy assignment operator.
Signature(const Signature &other)=delete
copy constructor.
bool verify(const BytesArray &signature, const std::string &pubKey)
verify signature.
Definition signature.cpp:199
virtual ~Signature()=default
destroy instance.
BytesArray sign(const std::string &privKey)
sign with given private key.
Definition signature.cpp:153
Signature(Digest::Algorithm algo)
create instance.
Definition signature.cpp:121
signature stream buffer.
Definition signature.hpp:41
bool verify(const BytesArray &sig, const std::string &pubKey)
verify signature with the given public key.
Definition signature.cpp:89
Signaturebuf(const Signaturebuf &other)=delete
copy constructor.
virtual ~Signaturebuf()=default
destroy the signature stream buffer instance.
Signaturebuf(Signaturebuf &&other)=default
move constructor.
Signaturebuf(const std::string &algo)
create the signature stream buffer instance.
Definition signature.cpp:52
Signaturebuf & operator=(const Signaturebuf &other)=delete
copy assignment operator.
BytesArray sign(const std::string &privKey)
sign with the given private key.
Definition signature.cpp:61
Definition acceptor.hpp:32
std::vector< uint8_t > BytesArray
bytes array.
Definition base64.hpp:39