ECC LibraryPlugin > Security > ECDSA
Description
Elliptic Curve Cryptography Library.
The ECC (Elliptic Curve Cryptography) API includes ECDSA verification on one of the elliptic curves recommended by NIST in csrc.nist.gov/groups/ST/toolkit/documents/dss/NISTReCur.pdf :
- secp256r1: NIST/SECG X9.62 curve over a 256 bit prime field
Data Structures | |
struct | ECC_Point_t |
struct | ECC_EcdsaSignature_t |
Macros | |
#define | INCLUDE_ECC_P256 |
Enable support for the P256 curve. | |
#define | ECC_BIGINT_SIZE_IN_BITS (256) |
#define | ECC_BIGINT_SIZE_IN_BYTES (ECC_BIGINT_SIZE_IN_BITS / 8) |
#define | ECC_BIGINT_SIZE_IN_32BIT_WORDS |
Typedefs | |
typedef uint32_t | ECC_BigInt_t[ECC_BIGINT_SIZE_IN_32BIT_WORDS] |
Functions | |
int32_t | ECC_ECDSA_VerifySignatureP256 (CRYPTO_TypeDef *crypto, const uint8_t *msgDigest, int msgDigestLen, const ECC_Point_t *publicKey, ECC_EcdsaSignature_t *signature) |
Verify an ECDSA signature. | |
void | ECC_HexToBigInt (ECC_BigInt_t bigint, const char *hex) |
Convert a large integer from a hexadecimal string to the ECC_BigInt_t format. | |
void | ECC_BigIntToHex (char *hex, ECC_BigInt_t bigint) |
Convert a large integer from the ECC_BigInt_t to a hexadecimal string format. | |
void | ECC_ByteArrayToBigInt (ECC_BigInt_t bigint, const uint8_t *bytearray) |
Convert a big integer from a byte array to the ECC_BigInt_t format. | |
void | ECC_BigIntToByteArray (uint8_t *bytearray, ECC_BigInt_t bigint) |
Convert a large integer from the ECC_BigInt_t to the byte array format. | |
void | ECC_UnsignedIntToBigInt (ECC_BigInt_t bigint, const uint32_t value) |
Convert an integer from uint32_t to ECC_BigInt_t format. | |
Macro Definition Documentation
#define ECC_BIGINT_SIZE_IN_BITS (256) |
ECC big integer size in bits.
Definition at line 52
of file ecc.h
.
#define ECC_BIGINT_SIZE_IN_BYTES (ECC_BIGINT_SIZE_IN_BITS / 8) |
ECC big integer size in bytes.
Definition at line 55
of file ecc.h
.
#define ECC_BIGINT_SIZE_IN_32BIT_WORDS |
ECC big integer size in words.
Definition at line 58
of file ecc.h
.
Typedef Documentation
typedef uint32_t ECC_BigInt_t[ECC_BIGINT_SIZE_IN_32BIT_WORDS] |
ECC big integer type
Definition at line 62
of file ecc.h
.
Function Documentation
int32_t ECC_ECDSA_VerifySignatureP256 | ( | CRYPTO_TypeDef * | crypto, |
const uint8_t * | msgDigest, |
||
int | msgDigestLen, |
||
const ECC_Point_t * | publicKey, |
||
ECC_EcdsaSignature_t * | signature |
||
) |
Verify an ECDSA signature.
TBW
- Parameters
-
[in] crypto
Pointer to CRYPTO peripheral instance [in] msgDigest
The message digest associated with the signature. [in] msgDigestLen
The length of the message digest. [in] publicKey
Public key of entity that generated signature. [out] signature
The signature to verify.
- Returns
- Error code.
void ECC_HexToBigInt | ( | ECC_BigInt_t | bigint, |
const char * | hex |
||
) |
Convert a large integer from a hexadecimal string to the ECC_BigInt_t format.
Convert a large integer from a hexadecimal string representation to a ECC_BigInt_t representation.
- Parameters
-
[out] bigint
Pointer to the location where to store the result. [in] hex
The hex representation of the large integer to convert.
void ECC_BigIntToHex | ( | char * | hex, |
ECC_BigInt_t | bigint |
||
) |
Convert a large integer from the ECC_BigInt_t to a hexadecimal string format.
Convert a large integer from a ECC_BigInt_t representation to a hexadecimal string representation.
- Parameters
-
[out] hex
Buffer where to store the hexadecimal result. [in] bigint
The ECC_BigInt_t representation of the large integer to convert.
void ECC_ByteArrayToBigInt | ( | ECC_BigInt_t | bigint, |
const uint8_t * | bytearray |
||
) |
Convert a big integer from a byte array to the ECC_BigInt_t format.
Convert a large integer from a byte array representation to a ECC_BigInt_t representation.
- Parameters
-
[out] bigint
Pointer to the location where to store the result. [in] bytearray
The byte array representation of the large integer to convert.
void ECC_BigIntToByteArray | ( | uint8_t * | bytearray, |
ECC_BigInt_t | bigint |
||
) |
Convert a large integer from the ECC_BigInt_t to the byte array format.
Convert a large integer from a ECC_BigInt_t representation to a byte array representation. Caution: byte array must be big enough to contain the result.
- Parameters
-
[out] bytearray
Buffer to store the resulting byte array. [in] bigint
The ECC_BigInt_t representation of the large integer to convert.
void ECC_UnsignedIntToBigInt | ( | ECC_BigInt_t | bigint, |
const uint32_t | value |
||
) |
Convert an integer from uint32_t to ECC_BigInt_t format.
Convert a integer from an uint32_t representation to a ECC_BigInt_t representation.
- Parameters
-
[out] bigint
Pointer to the location to store the result. [in] value
The value to convert.