1 #ifndef ESP8266NDN_PORT_EC_UECC_HPP
2 #define ESP8266NDN_PORT_EC_UECC_HPP
6 #ifdef ESP8266NDN_PORT_EC_UECC
8 #include "../vendor/uECC.h"
10 #include <type_traits>
13 namespace ndnph_port_uecc {
19 using PvtLen = std::integral_constant<size_t, uECC_BYTES>;
20 using PubLen = std::integral_constant<size_t, 1 + uECC_BYTES * 2>;
21 using MaxSigLen = std::integral_constant<size_t, 9 + uECC_BYTES * 2>;
26 bool import(
const uint8_t key[Curve::PubLen::value]);
28 ssize_t sign(
const uint8_t digest[uECC_BYTES], uint8_t sig[Curve::MaxSigLen::value])
const;
31 uint8_t m_key[uECC_BYTES];
36 bool import(
const uint8_t[Curve::PubLen::value]);
38 bool verify(
const uint8_t digest[uECC_BYTES],
const uint8_t* sig,
size_t sigLen)
const;
41 uint8_t m_key[2 * uECC_BYTES];
44 static bool generateKey(uint8_t pvt[Curve::PvtLen::value], uint8_t pub[Curve::PubLen::value]);
52 using Ec = esp8266ndn::ndnph_port_uecc::Ec;
Definition: autoconfig.hpp:24
port::Ec::Curve::PvtLen PvtLen
Definition: ec.hpp:14
port::Ec::Curve::PubLen PubLen
Definition: ec.hpp:15