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 <future>
33
34namespace join
35{
39 class Signaturebuf : public Digestbuf
40 {
41 public:
46 Signaturebuf (const std::string& algo);
47
52 Signaturebuf (const Signaturebuf& other) = delete;
53
59 Signaturebuf& operator= (const Signaturebuf& other) = delete;
60
65 Signaturebuf (Signaturebuf&& other) = default;
66
73
77 virtual ~Signaturebuf () = default;
78
84 BytesArray sign (const std::string& privKey);
85
92 bool verify (const BytesArray& sig, const std::string& pubKey);
93 };
94
98 class Signature : public std::ostream
99 {
100 public:
106
111 Signature (const Signature& other) = delete;
112
118 Signature& operator= (const Signature& other) = delete;
119
124 Signature (Signature&& other);
125
132
136 virtual ~Signature () = default;
137
143 BytesArray sign (const std::string& privKey);
144
153 static BytesArray sign (const char* data, std::streamsize size, const std::string& privKey,
154 Digest::Algorithm algo);
155
163 static BytesArray sign (const BytesArray& data, const std::string& privKey, Digest::Algorithm algo);
164
172 static BytesArray sign (const std::string& data, const std::string& privKey, Digest::Algorithm algo);
173
180 bool verify (const BytesArray& signature, const std::string& pubKey);
181
191 static bool verify (const char* data, std::streamsize size, const BytesArray& signature,
192 const std::string& pubKey, Digest::Algorithm algo);
193
202 static bool verify (const BytesArray& data, const BytesArray& signature, const std::string& pubKey,
203 Digest::Algorithm algo);
204
213 static bool verify (const std::string& data, const BytesArray& signature, const std::string& pubKey,
214 Digest::Algorithm algo);
215
216 private:
218 Signaturebuf _sigbuf;
219 };
220}
221
222#endif
Algorithm
algorithm.
Definition digest.hpp:167
digest stream buffer.
Definition digest.hpp:91
class used to manage signature.
Definition signature.hpp:99
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:197
virtual ~Signature()=default
destroy instance.
BytesArray sign(const std::string &privKey)
sign with given private key.
Definition signature.cpp:151
Signature(Digest::Algorithm algo)
create instance.
Definition signature.cpp:119
signature stream buffer.
Definition signature.hpp:40
bool verify(const BytesArray &sig, const std::string &pubKey)
verify signature with the given public key.
Definition signature.cpp:87
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:50
Signaturebuf & operator=(const Signaturebuf &other)=delete
copy assignment operator.
BytesArray sign(const std::string &privKey)
sign with the given private key.
Definition signature.cpp:59
Definition acceptor.hpp:32
std::vector< uint8_t > BytesArray
bytes array.
Definition base64.hpp:43