From 8314a948f74bb2b68cc4fb9456ff7536e01864b5 Mon Sep 17 00:00:00 2001 From: jakcron Date: Fri, 22 Jun 2018 21:16:36 +0800 Subject: [PATCH] [crypto] Add header for ECDSA-240 defines. --- lib/libcrypto/include/crypto/ecdsa.h | 62 ++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 lib/libcrypto/include/crypto/ecdsa.h diff --git a/lib/libcrypto/include/crypto/ecdsa.h b/lib/libcrypto/include/crypto/ecdsa.h new file mode 100644 index 0000000..fdf1ff6 --- /dev/null +++ b/lib/libcrypto/include/crypto/ecdsa.h @@ -0,0 +1,62 @@ +#pragma once +#include +#include +#include + +namespace crypto +{ + namespace ecdsa + { + const size_t kEcdsa240Size = 0x1E; + + enum EcdsaType + { + ECDSA_240, + }; + +#pragma pack (push, 1) + struct sEcdsa240Point + { + uint8_t r[kEcdsa240Size]; + uint8_t s[kEcdsa240Size]; + + void operator=(const sEcdsa240Point& other) + { + memcpy(this->r, r, kEcdsa240Size); + memcpy(this->s, s, kEcdsa240Size); + } + + bool operator==(const sEcdsa240Point& other) const + { + return memcmp(this->r, other.r, kEcdsa240Size) == 0 \ + && memcmp(this->s, other.s, kEcdsa240Size) == 0; + } + + bool operator!=(const sEcdsa240Point& other) const + { + return !operator==(other); + } + }; + + struct sEcdsa240PrivateKey + { + uint8_t k[kEcdsa240Size]; + + void operator=(const sEcdsa240PrivateKey& other) + { + memcpy(this->k, k, kEcdsa240Size); + } + + bool operator==(const sEcdsa240PrivateKey& other) const + { + return memcmp(this->k, other.k, kEcdsa240Size) == 0; + } + + bool operator!=(const sEcdsa240PrivateKey& other) const + { + return !operator==(other); + } + }; +#pragma pack (pop) + } +}