Botan  2.1.0
Crypto and TLS for C++11
xmss_wots_verification_operation.h
Go to the documentation of this file.
1 /**
2  * XMSS_WOTS_Verification_Operation.h
3  * (C) 2016 Matthias Gierlings
4  *
5  * Botan is released under the Simplified BSD License (see license.txt)
6  **/
7 
8 #ifndef BOTAN_XMSS_WOTS_VERIFICATION_OPERATION_H__
9 #define BOTAN_XMSS_WOTS_VERIFICATION_OPERATION_H__
10 
11 #include <cstddef>
12 #include <iterator>
13 #include <botan/types.h>
14 #include <botan/pk_ops.h>
15 #include <botan/internal/xmss_wots_addressed_publickey.h>
16 #include <botan/internal/xmss_wots_common_ops.h>
17 
18 namespace Botan {
19 
20 /**
21  * Provides signature verification capabilities for Winternitz One Time
22  * Signatures used in Extended Merkle Tree Signatures (XMSS).
23  *
24  * This operation is not intended for stand-alone use and thus not registered
25  * in the Botan algorithm registry.
26  **/
28  : public virtual PK_Ops::Verification,
30  {
31  public:
33  const XMSS_WOTS_Addressed_PublicKey& public_key);
34 
35  virtual ~XMSS_WOTS_Verification_Operation() = default;
36 
37  virtual bool is_valid_signature(const uint8_t sig[],
38  size_t sig_len) override;
39 
40  void update(const uint8_t msg[], size_t msg_len) override;
41 
42  private:
44  secure_vector<uint8_t> m_msg_buf;
45  };
46 
47 }
48 
49 #endif
XMSS_WOTS_Verification_Operation(const XMSS_WOTS_Addressed_PublicKey &public_key)
virtual bool is_valid_signature(const uint8_t sig[], size_t sig_len) override
std::vector< T, secure_allocator< T >> secure_vector
Definition: secmem.h:121
virtual ~XMSS_WOTS_Verification_Operation()=default
Definition: alg_id.cpp:13
void update(const uint8_t msg[], size_t msg_len) override