join 1.0
lightweight network framework library
Loading...
Searching...
No Matches
signature.hpp
Go to the documentation of this file.
1
25#ifndef __JOIN_SIGNATURE_HPP__
26#define __JOIN_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
132 Signature& operator=(Signature&& other);
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, 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, const std::string& pubKey, Digest::Algorithm algo);
192
201 static bool verify (const BytesArray& data, const BytesArray& signature, const std::string& pubKey, Digest::Algorithm algo);
202
211 static bool verify (const std::string& data, const BytesArray& signature, const std::string& pubKey, Digest::Algorithm algo);
212
213 private:
215 Signaturebuf _sigbuf;
216 };
217}
218
219#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