SignatureVerifier.h
Go to the documentation of this file.
1 /****
2  * Sming Framework Project - Open Source framework for high efficiency native ESP8266 development.
3  * Created 2017 by Slavey Karadzhov
4  * http://github.com/SmingHub/Sming
5  * All files of the Sming Core are provided under the LGPL v3 license.
6  *
7  * OtaSignatureVerifier.h
8  *
9  ****/
10 
11 #pragma once
12 
13 #include <Sodium/SignEd25519.h>
14 #include <FlashString/Array.hpp>
15 
16 namespace OtaUpgrade
17 {
18 DECLARE_FSTR_ARRAY(SignatureVerificationKey, uint8_t)
19 
20 
26 class SignatureVerifier : public Sodium::SignEd25519
27 {
28 public:
29  using VerificationData = Signature;
30 
34  bool verify(const Signature& signature)
35  {
36  PublicKey key;
37  assert(SignatureVerificationKey.length() == key.size());
38  SignatureVerificationKey.read(0, key.data(), key.size());
39  return Sodium::SignEd25519::verify(signature, key);
40  }
41 };
42 
43 } // namespace OtaUpgrade
void size_t const void * key
Definition: blake2s.h:33
Signature verifier for BasicStream.
Definition: SignatureVerifier.h:27
bool verify(const Signature &signature)
Definition: SignatureVerifier.h:34
Signature VerificationData
Definition: SignatureVerifier.h:29
#define DECLARE_FSTR_ARRAY(name, ElementType)
Declare a global Array& reference.
Definition: Array.hpp:39
Definition: BasicStream.h:24