40 lines
1.7 KiB
C
40 lines
1.7 KiB
C
/* ecc_p256_kat.h - deterministic ECDSA P-256 (SECP256R1) known-answer vector.
|
|
*
|
|
* Source: RFC 6979 Appendix A.2.5 (P-256), message "sample", hash SHA-256.
|
|
* Used for an RNG-free verify KAT on the TI C2000 C28x bring-up.
|
|
*
|
|
* Brace-init byte arrays (NOT "\x.." string literals): on cl2000 a char[]/byte[]
|
|
* initialized from a "\x.." string sign-extends bytes >= 0x80 into the 16-bit
|
|
* cell; a brace-init list stores clean octets.
|
|
*/
|
|
#ifndef ECC_P256_KAT_H
|
|
#define ECC_P256_KAT_H
|
|
|
|
/* Public key Q = (Ux, Uy), 32 bytes each, big-endian. */
|
|
static const unsigned char kat_p256_qx[32] = {
|
|
0x60,0xFE,0xD4,0xBA,0x25,0x5A,0x9D,0x31,0xC9,0x61,0xEB,0x74,0xC6,0x35,0x6D,0x68,
|
|
0xC0,0x49,0xB8,0x92,0x3B,0x61,0xFA,0x6C,0xE6,0x69,0x62,0x2E,0x60,0xF2,0x9F,0xB6
|
|
};
|
|
static const unsigned char kat_p256_qy[32] = {
|
|
0x79,0x03,0xFE,0x10,0x08,0xB8,0xBC,0x99,0xA4,0x1A,0xE9,0xE9,0x56,0x28,0xBC,0x64,
|
|
0xF2,0xF1,0xB2,0x0C,0x2D,0x7E,0x9F,0x51,0x77,0xA3,0xC2,0x94,0xD4,0x46,0x22,0x99
|
|
};
|
|
|
|
/* SHA-256("sample") - the message digest that was signed. */
|
|
static const unsigned char kat_p256_hash[32] = {
|
|
0xAF,0x2B,0xDB,0xE1,0xAA,0x9B,0x6E,0xC1,0xE2,0xAD,0xE1,0xD6,0x94,0xF4,0x1F,0xC7,
|
|
0x1A,0x83,0x1D,0x02,0x68,0xE9,0x89,0x15,0x62,0x11,0x3D,0x8A,0x62,0xAD,0xD1,0xBF
|
|
};
|
|
|
|
/* Signature (r, s), 32 bytes each, big-endian. */
|
|
static const unsigned char kat_p256_r[32] = {
|
|
0xEF,0xD4,0x8B,0x2A,0xAC,0xB6,0xA8,0xFD,0x11,0x40,0xDD,0x9C,0xD4,0x5E,0x81,0xD6,
|
|
0x9D,0x2C,0x87,0x7B,0x56,0xAA,0xF9,0x91,0xC3,0x4D,0x0E,0xA8,0x4E,0xAF,0x37,0x16
|
|
};
|
|
static const unsigned char kat_p256_s[32] = {
|
|
0xF7,0xCB,0x1C,0x94,0x2D,0x65,0x7C,0x41,0xD4,0x36,0xC7,0xA1,0xB6,0xE2,0x9F,0x65,
|
|
0xF3,0xE9,0x00,0xDB,0xB9,0xAF,0xF4,0x06,0x4D,0xC4,0xAB,0x2F,0x84,0x3A,0xCD,0xA8
|
|
};
|
|
|
|
#endif /* ECC_P256_KAT_H */
|