|
-
- /* X25519, X448 test vectors */
- template<> const uint8_t Tests<Ristretto>::rfc7748_1[32] = {
- 0x42,0x2c,0x8e,0x7a,0x62,0x27,0xd7,0xbc,
- 0xa1,0x35,0x0b,0x3e,0x2b,0xb7,0x27,0x9f,
- 0x78,0x97,0xb8,0x7b,0xb6,0x85,0x4b,0x78,
- 0x3c,0x60,0xe8,0x03,0x11,0xae,0x30,0x79
- };
- template<> const uint8_t Tests<Ristretto>::rfc7748_1000[32] = {
- 0x68,0x4c,0xf5,0x9b,0xa8,0x33,0x09,0x55,
- 0x28,0x00,0xef,0x56,0x6f,0x2f,0x4d,0x3c,
- 0x1c,0x38,0x87,0xc4,0x93,0x60,0xe3,0x87,
- 0x5f,0x2e,0xb9,0x4d,0x99,0x53,0x2c,0x51
- };
- template<> const uint8_t Tests<Ristretto>::rfc7748_1000000[32] = {
- 0x7c,0x39,0x11,0xe0,0xab,0x25,0x86,0xfd,
- 0x86,0x44,0x97,0x29,0x7e,0x57,0x5e,0x6f,
- 0x3b,0xc6,0x01,0xc0,0x88,0x3c,0x30,0xdf,
- 0x5f,0x4d,0xd2,0xd2,0x4f,0x66,0x54,0x24
- };
- template<> const uint8_t Tests<Ed448Goldilocks>::rfc7748_1[56] = {
- 0x3f,0x48,0x2c,0x8a,0x9f,0x19,0xb0,0x1e,
- 0x6c,0x46,0xee,0x97,0x11,0xd9,0xdc,0x14,
- 0xfd,0x4b,0xf6,0x7a,0xf3,0x07,0x65,0xc2,
- 0xae,0x2b,0x84,0x6a,0x4d,0x23,0xa8,0xcd,
- 0x0d,0xb8,0x97,0x08,0x62,0x39,0x49,0x2c,
- 0xaf,0x35,0x0b,0x51,0xf8,0x33,0x86,0x8b,
- 0x9b,0xc2,0xb3,0xbc,0xa9,0xcf,0x41,0x13
- };
- template<> const uint8_t Tests<Ed448Goldilocks>::rfc7748_1000[56] = {
- 0xaa,0x3b,0x47,0x49,0xd5,0x5b,0x9d,0xaf,
- 0x1e,0x5b,0x00,0x28,0x88,0x26,0xc4,0x67,
- 0x27,0x4c,0xe3,0xeb,0xbd,0xd5,0xc1,0x7b,
- 0x97,0x5e,0x09,0xd4,0xaf,0x6c,0x67,0xcf,
- 0x10,0xd0,0x87,0x20,0x2d,0xb8,0x82,0x86,
- 0xe2,0xb7,0x9f,0xce,0xea,0x3e,0xc3,0x53,
- 0xef,0x54,0xfa,0xa2,0x6e,0x21,0x9f,0x38
- };
- template<> const uint8_t Tests<Ed448Goldilocks>::rfc7748_1000000[56] = {
- 0x07,0x7f,0x45,0x36,0x81,0xca,0xca,0x36,
- 0x93,0x19,0x84,0x20,0xbb,0xe5,0x15,0xca,
- 0xe0,0x00,0x24,0x72,0x51,0x9b,0x3e,0x67,
- 0x66,0x1a,0x7e,0x89,0xca,0xb9,0x46,0x95,
- 0xc8,0xf4,0xbc,0xd6,0x6e,0x61,0xb9,0xb9,
- 0xc9,0x46,0xda,0x8d,0x52,0x4d,0xe3,0xd6,
- 0x9b,0xd9,0xd9,0xd6,0x6b,0x99,0x7e,0x37
- };
-
- template<> const Block Tests<Ed448Goldilocks>::sqrt_minus_one(NULL,0);
- const uint8_t sm1_25519[32] = {
- 0xb0,0xa0,0x0e,0x4a,0x27,0x1b,0xee,0xc4,
- 0x78,0xe4,0x2f,0xad,0x06,0x18,0x43,0x2f,
- 0xa7,0xd7,0xfb,0x3d,0x99,0x00,0x4d,0x2b,
- 0x0b,0xdf,0xc1,0x4f,0x80,0x24,0x83,0x2b
- };
- template<> const Block Tests<Ristretto>::sqrt_minus_one(sm1_25519,32);
-
- template<> const Block Tests<Ed448Goldilocks>::minus_sqrt_minus_one(NULL,0);
- const uint8_t msm1_25519[32] = {
- 0x3d,0x5f,0xf1,0xb5,0xd8,0xe4,0x11,0x3b,
- 0x87,0x1b,0xd0,0x52,0xf9,0xe7,0xbc,0xd0,
- 0x58,0x28,0x04,0xc2,0x66,0xff,0xb2,0xd4,
- 0xf4,0x20,0x3e,0xb0,0x7f,0xdb,0x7c,0x54
- };
- template<> const Block Tests<Ristretto>::minus_sqrt_minus_one(msm1_25519,32);
-
- const uint8_t elli_patho_448[56] = {
- 0x14,0xf0,0x70,0x58,0x41,0xc7,0xf9,0xa5,
- 0xfa,0x2c,0x7d,0x87,0x07,0x89,0xe8,0x61,
- 0x63,0xe8,0xc8,0xdc,0x06,0x2d,0x39,0x8f,
- 0x18,0x83,0x1e,0xc6,0x8c,0x6d,0x73,0x24,
- 0xd4,0xb3,0xd3,0xe1,0xf3,0x51,0x8c,0xee,
- 0x65,0x79,0x88,0xc1,0x0b,0xcf,0x8e,0xa5,
- 0x86,0xa9,0x2e,0xc9,0x17,0x68,0x9b,0x20
- };
- template<> const Block Tests<Ed448Goldilocks>::elli_patho(elli_patho_448,56);
- template<> const Block Tests<Ristretto>::elli_patho(NULL,0);
-
- /* EdDSA test vectors */
- /* EdDSA test vectors */
- const uint8_t ed448_eddsa_sk[][57] = {{
- // RFC 8032 - test vector 1 - blank
- 0x6c,0x82,0xa5,0x62,0xcb,0x80,0x8d,0x10,
- 0xd6,0x32,0xbe,0x89,0xc8,0x51,0x3e,0xbf,
- 0x6c,0x92,0x9f,0x34,0xdd,0xfa,0x8c,0x9f,
- 0x63,0xc9,0x96,0x0e,0xf6,0xe3,0x48,0xa3,
- 0x52,0x8c,0x8a,0x3f,0xcc,0x2f,0x04,0x4e,
- 0x39,0xa3,0xfc,0x5b,0x94,0x49,0x2f,0x8f,
- 0x03,0x2e,0x75,0x49,0xa2,0x00,0x98,0xf9,
- 0x5b
- }, {
- // RFC 8032 - test vector 2/3 - 1 octet
- 0xc4,0xea,0xb0,0x5d,0x35,0x70,0x07,0xc6,
- 0x32,0xf3,0xdb,0xb4,0x84,0x89,0x92,0x4d,
- 0x55,0x2b,0x08,0xfe,0x0c,0x35,0x3a,0x0d,
- 0x4a,0x1f,0x00,0xac,0xda,0x2c,0x46,0x3a,
- 0xfb,0xea,0x67,0xc5,0xe8,0xd2,0x87,0x7c,
- 0x5e,0x3b,0xc3,0x97,0xa6,0x59,0x94,0x9e,
- 0xf8,0x02,0x1e,0x95,0x4e,0x0a,0x12,0x27,
- 0x4e
- }, {
- // RFC 8032 - test vector 4 - 11 octet
- 0xcd,0x23,0xd2,0x4f,0x71,0x42,0x74,0xe7,
- 0x44,0x34,0x32,0x37,0xb9,0x32,0x90,0xf5,
- 0x11,0xf6,0x42,0x5f,0x98,0xe6,0x44,0x59,
- 0xff,0x20,0x3e,0x89,0x85,0x08,0x3f,0xfd,
- 0xf6,0x05,0x00,0x55,0x3a,0xbc,0x0e,0x05,
- 0xcd,0x02,0x18,0x4b,0xdb,0x89,0xc4,0xcc,
- 0xd6,0x7e,0x18,0x79,0x51,0x26,0x7e,0xb3,
- 0x28
- }, {
- // RFC 8032 - test vector 5 - 12 octet
- 0x25,0x8c,0xdd,0x4a,0xda,0x32,0xed,0x9c,
- 0x9f,0xf5,0x4e,0x63,0x75,0x6a,0xe5,0x82,
- 0xfb,0x8f,0xab,0x2a,0xc7,0x21,0xf2,0xc8,
- 0xe6,0x76,0xa7,0x27,0x68,0x51,0x3d,0x93,
- 0x9f,0x63,0xdd,0xdb,0x55,0x60,0x91,0x33,
- 0xf2,0x9a,0xdf,0x86,0xec,0x99,0x29,0xdc,
- 0xcb,0x52,0xc1,0xc5,0xfd,0x2f,0xf7,0xe2,
- 0x1b
- }, {
- // RFC 8032 - test vector 1 - prehash - blank
- 0x83,0x3f,0xe6,0x24,0x09,0x23,0x7b,0x9d,
- 0x62,0xec,0x77,0x58,0x75,0x20,0x91,0x1e,
- 0x9a,0x75,0x9c,0xec,0x1d,0x19,0x75,0x5b,
- 0x7d,0xa9,0x01,0xb9,0x6d,0xca,0x3d,0x42,
- 0xef,0x78,0x22,0xe0,0xd5,0x10,0x41,0x27,
- 0xdc,0x05,0xd6,0xdb,0xef,0xde,0x69,0xe3,
- 0xab,0x2c,0xec,0x7c,0x86,0x7c,0x6e,0x2c,
- 0x49
- }, {
- // RFC 8032 - test vector 6 - 13 octet
- 0x7e,0xf4,0xe8,0x45,0x44,0x23,0x67,0x52,
- 0xfb,0xb5,0x6b,0x8f,0x31,0xa2,0x3a,0x10,
- 0xe4,0x28,0x14,0xf5,0xf5,0x5c,0xa0,0x37,
- 0xcd,0xcc,0x11,0xc6,0x4c,0x9a,0x3b,0x29,
- 0x49,0xc1,0xbb,0x60,0x70,0x03,0x14,0x61,
- 0x17,0x32,0xa6,0xc2,0xfe,0xa9,0x8e,0xeb,
- 0xc0,0x26,0x6a,0x11,0xa9,0x39,0x70,0x10,
- 0x0e,
- }, {
- // RFC 8032 - test vector 7 - 64 octet
- 0xd6,0x5d,0xf3,0x41,0xad,0x13,0xe0,0x08,
- 0x56,0x76,0x88,0xba,0xed,0xda,0x8e,0x9d,
- 0xcd,0xc1,0x7d,0xc0,0x24,0x97,0x4e,0xa5,
- 0xb4,0x22,0x7b,0x65,0x30,0xe3,0x39,0xbf,
- 0xf2,0x1f,0x99,0xe6,0x8c,0xa6,0x96,0x8f,
- 0x3c,0xca,0x6d,0xfe,0x0f,0xb9,0xf4,0xfa,
- 0xb4,0xfa,0x13,0x5d,0x55,0x42,0xea,0x3f,
- 0x01,
- }, {
- // RFC 8032 - test vector 8 - 256 octet
- 0x2e,0xc5,0xfe,0x3c,0x17,0x04,0x5a,0xbd,
- 0xb1,0x36,0xa5,0xe6,0xa9,0x13,0xe3,0x2a,
- 0xb7,0x5a,0xe6,0x8b,0x53,0xd2,0xfc,0x14,
- 0x9b,0x77,0xe5,0x04,0x13,0x2d,0x37,0x56,
- 0x9b,0x7e,0x76,0x6b,0xa7,0x4a,0x19,0xbd,
- 0x61,0x62,0x34,0x3a,0x21,0xc8,0x59,0x0a,
- 0xa9,0xce,0xbc,0xa9,0x01,0x4c,0x63,0x6d,
- 0xf5,
- }, {
- // RFC 8032 - test vector 9 - 1023 octet
- 0x87,0x2d,0x09,0x37,0x80,0xf5,0xd3,0x73,
- 0x0d,0xf7,0xc2,0x12,0x66,0x4b,0x37,0xb8,
- 0xa0,0xf2,0x4f,0x56,0x81,0x0d,0xaa,0x83,
- 0x82,0xcd,0x4f,0xa3,0xf7,0x76,0x34,0xec,
- 0x44,0xdc,0x54,0xf1,0xc2,0xed,0x9b,0xea,
- 0x86,0xfa,0xfb,0x76,0x32,0xd8,0xbe,0x19,
- 0x9e,0xa1,0x65,0xf5,0xad,0x55,0xdd,0x9c,
- 0xe8,
- }};
- const uint8_t ed448_eddsa_pk[][57] = {{
- // RFC 8032 - test vector 1 - blank
- 0x5f,0xd7,0x44,0x9b,0x59,0xb4,0x61,0xfd,
- 0x2c,0xe7,0x87,0xec,0x61,0x6a,0xd4,0x6a,
- 0x1d,0xa1,0x34,0x24,0x85,0xa7,0x0e,0x1f,
- 0x8a,0x0e,0xa7,0x5d,0x80,0xe9,0x67,0x78,
- 0xed,0xf1,0x24,0x76,0x9b,0x46,0xc7,0x06,
- 0x1b,0xd6,0x78,0x3d,0xf1,0xe5,0x0f,0x6c,
- 0xd1,0xfa,0x1a,0xbe,0xaf,0xe8,0x25,0x61,
- 0x80
- }, {
- // RFC 8032 - test vector 2/3 - 1 octet
- 0x43,0xba,0x28,0xf4,0x30,0xcd,0xff,0x45,
- 0x6a,0xe5,0x31,0x54,0x5f,0x7e,0xcd,0x0a,
- 0xc8,0x34,0xa5,0x5d,0x93,0x58,0xc0,0x37,
- 0x2b,0xfa,0x0c,0x6c,0x67,0x98,0xc0,0x86,
- 0x6a,0xea,0x01,0xeb,0x00,0x74,0x28,0x02,
- 0xb8,0x43,0x8e,0xa4,0xcb,0x82,0x16,0x9c,
- 0x23,0x51,0x60,0x62,0x7b,0x4c,0x3a,0x94,
- 0x80
- }, {
- // RFC 8032 - test vector 4 - 11 octet
- 0xdc,0xea,0x9e,0x78,0xf3,0x5a,0x1b,0xf3,
- 0x49,0x9a,0x83,0x1b,0x10,0xb8,0x6c,0x90,
- 0xaa,0xc0,0x1c,0xd8,0x4b,0x67,0xa0,0x10,
- 0x9b,0x55,0xa3,0x6e,0x93,0x28,0xb1,0xe3,
- 0x65,0xfc,0xe1,0x61,0xd7,0x1c,0xe7,0x13,
- 0x1a,0x54,0x3e,0xa4,0xcb,0x5f,0x7e,0x9f,
- 0x1d,0x8b,0x00,0x69,0x64,0x47,0x00,0x14,
- 0x00
- }, {
- // RFC 8032 - test vector 5 - 12 octet
- 0x3b,0xa1,0x6d,0xa0,0xc6,0xf2,0xcc,0x1f,
- 0x30,0x18,0x77,0x40,0x75,0x6f,0x5e,0x79,
- 0x8d,0x6b,0xc5,0xfc,0x01,0x5d,0x7c,0x63,
- 0xcc,0x95,0x10,0xee,0x3f,0xd4,0x4a,0xdc,
- 0x24,0xd8,0xe9,0x68,0xb6,0xe4,0x6e,0x6f,
- 0x94,0xd1,0x9b,0x94,0x53,0x61,0x72,0x6b,
- 0xd7,0x5e,0x14,0x9e,0xf0,0x98,0x17,0xf5,
- 0x80
- }, {
- // RFC 8032 - test vector 1 - prehash - abc
- 0x25,0x9b,0x71,0xc1,0x9f,0x83,0xef,0x77,
- 0xa7,0xab,0xd2,0x65,0x24,0xcb,0xdb,0x31,
- 0x61,0xb5,0x90,0xa4,0x8f,0x7d,0x17,0xde,
- 0x3e,0xe0,0xba,0x9c,0x52,0xbe,0xb7,0x43,
- 0xc0,0x94,0x28,0xa1,0x31,0xd6,0xb1,0xb5,
- 0x73,0x03,0xd9,0x0d,0x81,0x32,0xc2,0x76,
- 0xd5,0xed,0x3d,0x5d,0x01,0xc0,0xf5,0x38,
- 0x80
- }, {
- // RFC 8032 - test vector 6 - 13 octet
- 0xb3,0xda,0x07,0x9b,0x0a,0xa4,0x93,0xa5,
- 0x77,0x20,0x29,0xf0,0x46,0x7b,0xae,0xbe,
- 0xe5,0xa8,0x11,0x2d,0x9d,0x3a,0x22,0x53,
- 0x23,0x61,0xda,0x29,0x4f,0x7b,0xb3,0x81,
- 0x5c,0x5d,0xc5,0x9e,0x17,0x6b,0x4d,0x9f,
- 0x38,0x1c,0xa0,0x93,0x8e,0x13,0xc6,0xc0,
- 0x7b,0x17,0x4b,0xe6,0x5d,0xfa,0x57,0x8e,
- 0x80
- }, {
- // RFC 8032 - test vector 7 - 64 octet
- 0xdf,0x97,0x05,0xf5,0x8e,0xdb,0xab,0x80,
- 0x2c,0x7f,0x83,0x63,0xcf,0xe5,0x56,0x0a,
- 0xb1,0xc6,0x13,0x2c,0x20,0xa9,0xf1,0xdd,
- 0x16,0x34,0x83,0xa2,0x6f,0x8a,0xc5,0x3a,
- 0x39,0xd6,0x80,0x8b,0xf4,0xa1,0xdf,0xbd,
- 0x26,0x1b,0x09,0x9b,0xb0,0x3b,0x3f,0xb5,
- 0x09,0x06,0xcb,0x28,0xbd,0x8a,0x08,0x1f,
- 0x00
- }, {
- // RFC 8032 - test vector 8 - 256 octet
- 0x79,0x75,0x6f,0x01,0x4d,0xcf,0xe2,0x07,
- 0x9f,0x5d,0xd9,0xe7,0x18,0xbe,0x41,0x71,
- 0xe2,0xef,0x24,0x86,0xa0,0x8f,0x25,0x18,
- 0x6f,0x6b,0xff,0x43,0xa9,0x93,0x6b,0x9b,
- 0xfe,0x12,0x40,0x2b,0x08,0xae,0x65,0x79,
- 0x8a,0x3d,0x81,0xe2,0x2e,0x9e,0xc8,0x0e,
- 0x76,0x90,0x86,0x2e,0xf3,0xd4,0xed,0x3a,
- 0x00
- }, {
- // RFC 8032 - test vector 9 - 1023 octet
- 0xa8,0x1b,0x2e,0x8a,0x70,0xa5,0xac,0x94,
- 0xff,0xdb,0xcc,0x9b,0xad,0xfc,0x3f,0xeb,
- 0x08,0x01,0xf2,0x58,0x57,0x8b,0xb1,0x14,
- 0xad,0x44,0xec,0xe1,0xec,0x0e,0x79,0x9d,
- 0xa0,0x8e,0xff,0xb8,0x1c,0x5d,0x68,0x5c,
- 0x0c,0x56,0xf6,0x4e,0xec,0xae,0xf8,0xcd,
- 0xf1,0x1c,0xc3,0x87,0x37,0x83,0x8c,0xf4,
- 0x00
- }};
- const uint8_t ed448_eddsa_message[][1023] = {{
- // RFC 8032 - test vector 1 - blank
- 0
- }, {
- // RFC 8032 - test vector 2/3 - 1 octet
- 0x03
- }, {
- // RFC 8032 - test vector 4 - 11 octet
- 0x0c,0x3e,0x54,0x40,0x74,0xec,0x63,0xb0,
- 0x26,0x5e,0x0c
- }, {
- // RFC 8032 - test vector 5 - 12 octet
- 0x64,0xa6,0x5f,0x3c,0xde,0xdc,0xdd,0x66,
- 0x81,0x1e,0x29,0x15
- }, {
- // RFC 8032 - test vector 1/2 - prehash - abc
- 0x61,0x62,0x63
- }, {
- // RFC 8032 - test vector 6 - 13 octet
- 0x64,0xa6,0x5f,0x3c,0xde,0xdc,0xdd,0x66,
- 0x81,0x1e,0x29,0x15,0xe7
- }, {
- // RFC 8032 - test vector 7 - 64 octet
- 0xbd,0x0f,0x6a,0x37,0x47,0xcd,0x56,0x1b,
- 0xdd,0xdf,0x46,0x40,0xa3,0x32,0x46,0x1a,
- 0x4a,0x30,0xa1,0x2a,0x43,0x4c,0xd0,0xbf,
- 0x40,0xd7,0x66,0xd9,0xc6,0xd4,0x58,0xe5,
- 0x51,0x22,0x04,0xa3,0x0c,0x17,0xd1,0xf5,
- 0x0b,0x50,0x79,0x63,0x1f,0x64,0xeb,0x31,
- 0x12,0x18,0x2d,0xa3,0x00,0x58,0x35,0x46,
- 0x11,0x13,0x71,0x8d,0x1a,0x5e,0xf9,0x44
- }, {
- // RFC 8032 - test vector 8 - 256 octet
- 0x15,0x77,0x75,0x32,0xb0,0xbd,0xd0,0xd1,
- 0x38,0x9f,0x63,0x6c,0x5f,0x6b,0x9b,0xa7,
- 0x34,0xc9,0x0a,0xf5,0x72,0x87,0x7e,0x2d,
- 0x27,0x2d,0xd0,0x78,0xaa,0x1e,0x56,0x7c,
- 0xfa,0x80,0xe1,0x29,0x28,0xbb,0x54,0x23,
- 0x30,0xe8,0x40,0x9f,0x31,0x74,0x50,0x41,
- 0x07,0xec,0xd5,0xef,0xac,0x61,0xae,0x75,
- 0x04,0xda,0xbe,0x2a,0x60,0x2e,0xde,0x89,
- 0xe5,0xcc,0xa6,0x25,0x7a,0x7c,0x77,0xe2,
- 0x7a,0x70,0x2b,0x3a,0xe3,0x9f,0xc7,0x69,
- 0xfc,0x54,0xf2,0x39,0x5a,0xe6,0xa1,0x17,
- 0x8c,0xab,0x47,0x38,0xe5,0x43,0x07,0x2f,
- 0xc1,0xc1,0x77,0xfe,0x71,0xe9,0x2e,0x25,
- 0xbf,0x03,0xe4,0xec,0xb7,0x2f,0x47,0xb6,
- 0x4d,0x04,0x65,0xaa,0xea,0x4c,0x7f,0xad,
- 0x37,0x25,0x36,0xc8,0xba,0x51,0x6a,0x60,
- 0x39,0xc3,0xc2,0xa3,0x9f,0x0e,0x4d,0x83,
- 0x2b,0xe4,0x32,0xdf,0xa9,0xa7,0x06,0xa6,
- 0xe5,0xc7,0xe1,0x9f,0x39,0x79,0x64,0xca,
- 0x42,0x58,0x00,0x2f,0x7c,0x05,0x41,0xb5,
- 0x90,0x31,0x6d,0xbc,0x56,0x22,0xb6,0xb2,
- 0xa6,0xfe,0x7a,0x4a,0xbf,0xfd,0x96,0x10,
- 0x5e,0xca,0x76,0xea,0x7b,0x98,0x81,0x6a,
- 0xf0,0x74,0x8c,0x10,0xdf,0x04,0x8c,0xe0,
- 0x12,0xd9,0x01,0x01,0x5a,0x51,0xf1,0x89,
- 0xf3,0x88,0x81,0x45,0xc0,0x36,0x50,0xaa,
- 0x23,0xce,0x89,0x4c,0x3b,0xd8,0x89,0xe0,
- 0x30,0xd5,0x65,0x07,0x1c,0x59,0xf4,0x09,
- 0xa9,0x98,0x1b,0x51,0x87,0x8f,0xd6,0xfc,
- 0x11,0x06,0x24,0xdc,0xbc,0xde,0x0b,0xf7,
- 0xa6,0x9c,0xcc,0xe3,0x8f,0xab,0xdf,0x86,
- 0xf3,0xbe,0xf6,0x04,0x48,0x19,0xde,0x11
- }, {
- // RFC 8032 - test vector 9 - 1023 octet
- 0x6d,0xdf,0x80,0x2e,0x1a,0xae,0x49,0x86,
- 0x93,0x5f,0x7f,0x98,0x1b,0xa3,0xf0,0x35,
- 0x1d,0x62,0x73,0xc0,0xa0,0xc2,0x2c,0x9c,
- 0x0e,0x83,0x39,0x16,0x8e,0x67,0x54,0x12,
- 0xa3,0xde,0xbf,0xaf,0x43,0x5e,0xd6,0x51,
- 0x55,0x80,0x07,0xdb,0x43,0x84,0xb6,0x50,
- 0xfc,0xc0,0x7e,0x3b,0x58,0x6a,0x27,0xa4,
- 0xf7,0xa0,0x0a,0xc8,0xa6,0xfe,0xc2,0xcd,
- 0x86,0xae,0x4b,0xf1,0x57,0x0c,0x41,0xe6,
- 0xa4,0x0c,0x93,0x1d,0xb2,0x7b,0x2f,0xaa,
- 0x15,0xa8,0xce,0xdd,0x52,0xcf,0xf7,0x36,
- 0x2c,0x4e,0x6e,0x23,0xda,0xec,0x0f,0xbc,
- 0x3a,0x79,0xb6,0x80,0x6e,0x31,0x6e,0xfc,
- 0xc7,0xb6,0x81,0x19,0xbf,0x46,0xbc,0x76,
- 0xa2,0x60,0x67,0xa5,0x3f,0x29,0x6d,0xaf,
- 0xdb,0xdc,0x11,0xc7,0x7f,0x77,0x77,0xe9,
- 0x72,0x66,0x0c,0xf4,0xb6,0xa9,0xb3,0x69,
- 0xa6,0x66,0x5f,0x02,0xe0,0xcc,0x9b,0x6e,
- 0xdf,0xad,0x13,0x6b,0x4f,0xab,0xe7,0x23,
- 0xd2,0x81,0x3d,0xb3,0x13,0x6c,0xfd,0xe9,
- 0xb6,0xd0,0x44,0x32,0x2f,0xee,0x29,0x47,
- 0x95,0x2e,0x03,0x1b,0x73,0xab,0x5c,0x60,
- 0x33,0x49,0xb3,0x07,0xbd,0xc2,0x7b,0xc6,
- 0xcb,0x8b,0x8b,0xbd,0x7b,0xd3,0x23,0x21,
- 0x9b,0x80,0x33,0xa5,0x81,0xb5,0x9e,0xad,
- 0xeb,0xb0,0x9b,0x3c,0x4f,0x3d,0x22,0x77,
- 0xd4,0xf0,0x34,0x36,0x24,0xac,0xc8,0x17,
- 0x80,0x47,0x28,0xb2,0x5a,0xb7,0x97,0x17,
- 0x2b,0x4c,0x5c,0x21,0xa2,0x2f,0x9c,0x78,
- 0x39,0xd6,0x43,0x00,0x23,0x2e,0xb6,0x6e,
- 0x53,0xf3,0x1c,0x72,0x3f,0xa3,0x7f,0xe3,
- 0x87,0xc7,0xd3,0xe5,0x0b,0xdf,0x98,0x13,
- 0xa3,0x0e,0x5b,0xb1,0x2c,0xf4,0xcd,0x93,
- 0x0c,0x40,0xcf,0xb4,0xe1,0xfc,0x62,0x25,
- 0x92,0xa4,0x95,0x88,0x79,0x44,0x94,0xd5,
- 0x6d,0x24,0xea,0x4b,0x40,0xc8,0x9f,0xc0,
- 0x59,0x6c,0xc9,0xeb,0xb9,0x61,0xc8,0xcb,
- 0x10,0xad,0xde,0x97,0x6a,0x5d,0x60,0x2b,
- 0x1c,0x3f,0x85,0xb9,0xb9,0xa0,0x01,0xed,
- 0x3c,0x6a,0x4d,0x3b,0x14,0x37,0xf5,0x20,
- 0x96,0xcd,0x19,0x56,0xd0,0x42,0xa5,0x97,
- 0xd5,0x61,0xa5,0x96,0xec,0xd3,0xd1,0x73,
- 0x5a,0x8d,0x57,0x0e,0xa0,0xec,0x27,0x22,
- 0x5a,0x2c,0x4a,0xaf,0xf2,0x63,0x06,0xd1,
- 0x52,0x6c,0x1a,0xf3,0xca,0x6d,0x9c,0xf5,
- 0xa2,0xc9,0x8f,0x47,0xe1,0xc4,0x6d,0xb9,
- 0xa3,0x32,0x34,0xcf,0xd4,0xd8,0x1f,0x2c,
- 0x98,0x53,0x8a,0x09,0xeb,0xe7,0x69,0x98,
- 0xd0,0xd8,0xfd,0x25,0x99,0x7c,0x7d,0x25,
- 0x5c,0x6d,0x66,0xec,0xe6,0xfa,0x56,0xf1,
- 0x11,0x44,0x95,0x0f,0x02,0x77,0x95,0xe6,
- 0x53,0x00,0x8f,0x4b,0xd7,0xca,0x2d,0xee,
- 0x85,0xd8,0xe9,0x0f,0x3d,0xc3,0x15,0x13,
- 0x0c,0xe2,0xa0,0x03,0x75,0xa3,0x18,0xc7,
- 0xc3,0xd9,0x7b,0xe2,0xc8,0xce,0x5b,0x6d,
- 0xb4,0x1a,0x62,0x54,0xff,0x26,0x4f,0xa6,
- 0x15,0x5b,0xae,0xe3,0xb0,0x77,0x3c,0x0f,
- 0x49,0x7c,0x57,0x3f,0x19,0xbb,0x4f,0x42,
- 0x40,0x28,0x1f,0x0b,0x1f,0x4f,0x7b,0xe8,
- 0x57,0xa4,0xe5,0x9d,0x41,0x6c,0x06,0xb4,
- 0xc5,0x0f,0xa0,0x9e,0x18,0x10,0xdd,0xc6,
- 0xb1,0x46,0x7b,0xae,0xac,0x5a,0x36,0x68,
- 0xd1,0x1b,0x6e,0xca,0xa9,0x01,0x44,0x00,
- 0x16,0xf3,0x89,0xf8,0x0a,0xcc,0x4d,0xb9,
- 0x77,0x02,0x5e,0x7f,0x59,0x24,0x38,0x8c,
- 0x7e,0x34,0x0a,0x73,0x2e,0x55,0x44,0x40,
- 0xe7,0x65,0x70,0xf8,0xdd,0x71,0xb7,0xd6,
- 0x40,0xb3,0x45,0x0d,0x1f,0xd5,0xf0,0x41,
- 0x0a,0x18,0xf9,0xa3,0x49,0x4f,0x70,0x7c,
- 0x71,0x7b,0x79,0xb4,0xbf,0x75,0xc9,0x84,
- 0x00,0xb0,0x96,0xb2,0x16,0x53,0xb5,0xd2,
- 0x17,0xcf,0x35,0x65,0xc9,0x59,0x74,0x56,
- 0xf7,0x07,0x03,0x49,0x7a,0x07,0x87,0x63,
- 0x82,0x9b,0xc0,0x1b,0xb1,0xcb,0xc8,0xfa,
- 0x04,0xea,0xdc,0x9a,0x6e,0x3f,0x66,0x99,
- 0x58,0x7a,0x9e,0x75,0xc9,0x4e,0x5b,0xab,
- 0x00,0x36,0xe0,0xb2,0xe7,0x11,0x39,0x2c,
- 0xff,0x00,0x47,0xd0,0xd6,0xb0,0x5b,0xd2,
- 0xa5,0x88,0xbc,0x10,0x97,0x18,0x95,0x42,
- 0x59,0xf1,0xd8,0x66,0x78,0xa5,0x79,0xa3,
- 0x12,0x0f,0x19,0xcf,0xb2,0x96,0x3f,0x17,
- 0x7a,0xeb,0x70,0xf2,0xd4,0x84,0x48,0x26,
- 0x26,0x2e,0x51,0xb8,0x02,0x71,0x27,0x20,
- 0x68,0xef,0x5b,0x38,0x56,0xfa,0x85,0x35,
- 0xaa,0x2a,0x88,0xb2,0xd4,0x1f,0x2a,0x0e,
- 0x2f,0xda,0x76,0x24,0xc2,0x85,0x02,0x72,
- 0xac,0x4a,0x2f,0x56,0x1f,0x8f,0x2f,0x7a,
- 0x31,0x8b,0xfd,0x5c,0xaf,0x96,0x96,0x14,
- 0x9e,0x4a,0xc8,0x24,0xad,0x34,0x60,0x53,
- 0x8f,0xdc,0x25,0x42,0x1b,0xee,0xc2,0xcc,
- 0x68,0x18,0x16,0x2d,0x06,0xbb,0xed,0x0c,
- 0x40,0xa3,0x87,0x19,0x23,0x49,0xdb,0x67,
- 0xa1,0x18,0xba,0xda,0x6c,0xd5,0xab,0x01,
- 0x40,0xee,0x27,0x32,0x04,0xf6,0x28,0xaa,
- 0xd1,0xc1,0x35,0xf7,0x70,0x27,0x9a,0x65,
- 0x1e,0x24,0xd8,0xc1,0x4d,0x75,0xa6,0x05,
- 0x9d,0x76,0xb9,0x6a,0x6f,0xd8,0x57,0xde,
- 0xf5,0xe0,0xb3,0x54,0xb2,0x7a,0xb9,0x37,
- 0xa5,0x81,0x5d,0x16,0xb5,0xfa,0xe4,0x07,
- 0xff,0x18,0x22,0x2c,0x6d,0x1e,0xd2,0x63,
- 0xbe,0x68,0xc9,0x5f,0x32,0xd9,0x08,0xbd,
- 0x89,0x5c,0xd7,0x62,0x07,0xae,0x72,0x64,
- 0x87,0x56,0x7f,0x9a,0x67,0xda,0xd7,0x9a,
- 0xbe,0xc3,0x16,0xf6,0x83,0xb1,0x7f,0x2d,
- 0x02,0xbf,0x07,0xe0,0xac,0x8b,0x5b,0xc6,
- 0x16,0x2c,0xf9,0x46,0x97,0xb3,0xc2,0x7c,
- 0xd1,0xfe,0xa4,0x9b,0x27,0xf2,0x3b,0xa2,
- 0x90,0x18,0x71,0x96,0x25,0x06,0x52,0x0c,
- 0x39,0x2d,0xa8,0xb6,0xad,0x0d,0x99,0xf7,
- 0x01,0x3f,0xbc,0x06,0xc2,0xc1,0x7a,0x56,
- 0x95,0x00,0xc8,0xa7,0x69,0x64,0x81,0xc1,
- 0xcd,0x33,0xe9,0xb1,0x4e,0x40,0xb8,0x2e,
- 0x79,0xa5,0xf5,0xdb,0x82,0x57,0x1b,0xa9,
- 0x7b,0xae,0x3a,0xd3,0xe0,0x47,0x95,0x15,
- 0xbb,0x0e,0x2b,0x0f,0x3b,0xfc,0xd1,0xfd,
- 0x33,0x03,0x4e,0xfc,0x62,0x45,0xed,0xdd,
- 0x7e,0xe2,0x08,0x6d,0xda,0xe2,0x60,0x0d,
- 0x8c,0xa7,0x3e,0x21,0x4e,0x8c,0x2b,0x0b,
- 0xdb,0x2b,0x04,0x7c,0x6a,0x46,0x4a,0x56,
- 0x2e,0xd7,0x7b,0x73,0xd2,0xd8,0x41,0xc4,
- 0xb3,0x49,0x73,0x55,0x12,0x57,0x71,0x3b,
- 0x75,0x36,0x32,0xef,0xba,0x34,0x81,0x69,
- 0xab,0xc9,0x0a,0x68,0xf4,0x26,0x11,0xa4,
- 0x01,0x26,0xd7,0xcb,0x21,0xb5,0x86,0x95,
- 0x56,0x81,0x86,0xf7,0xe5,0x69,0xd2,0xff,
- 0x0f,0x9e,0x74,0x5d,0x04,0x87,0xdd,0x2e,
- 0xb9,0x97,0xca,0xfc,0x5a,0xbf,0x9d,0xd1,
- 0x02,0xe6,0x2f,0xf6,0x6c,0xba,0x87
- }};
-
- template<> const bool Tests<Ed448Goldilocks>::eddsa_prehashed[] = {
- false,
- false,
- false,
- false,
- false,
- true,
- true,
- false,
- false,
- false,
- false
- };
-
- const uint8_t ed448_eddsa_context[][3] = {{
- 0x66,0x6f,0x6f
- }};
-
- const uint8_t ed448_eddsa_sig[][114] = {{
- // RFC 8032 - test vector 1 - blank
- 0x53,0x3a,0x37,0xf6,0xbb,0xe4,0x57,0x25,
- 0x1f,0x02,0x3c,0x0d,0x88,0xf9,0x76,0xae,
- 0x2d,0xfb,0x50,0x4a,0x84,0x3e,0x34,0xd2,
- 0x07,0x4f,0xd8,0x23,0xd4,0x1a,0x59,0x1f,
- 0x2b,0x23,0x3f,0x03,0x4f,0x62,0x82,0x81,
- 0xf2,0xfd,0x7a,0x22,0xdd,0xd4,0x7d,0x78,
- 0x28,0xc5,0x9b,0xd0,0xa2,0x1b,0xfd,0x39,
- 0x80,0xff,0x0d,0x20,0x28,0xd4,0xb1,0x8a,
- 0x9d,0xf6,0x3e,0x00,0x6c,0x5d,0x1c,0x2d,
- 0x34,0x5b,0x92,0x5d,0x8d,0xc0,0x0b,0x41,
- 0x04,0x85,0x2d,0xb9,0x9a,0xc5,0xc7,0xcd,
- 0xda,0x85,0x30,0xa1,0x13,0xa0,0xf4,0xdb,
- 0xb6,0x11,0x49,0xf0,0x5a,0x73,0x63,0x26,
- 0x8c,0x71,0xd9,0x58,0x08,0xff,0x2e,0x65,
- 0x26,0x00
- }, {
- // RFC 8032 - test vector 2 - 1 octet
- 0x26,0xb8,0xf9,0x17,0x27,0xbd,0x62,0x89,
- 0x7a,0xf1,0x5e,0x41,0xeb,0x43,0xc3,0x77,
- 0xef,0xb9,0xc6,0x10,0xd4,0x8f,0x23,0x35,
- 0xcb,0x0b,0xd0,0x08,0x78,0x10,0xf4,0x35,
- 0x25,0x41,0xb1,0x43,0xc4,0xb9,0x81,0xb7,
- 0xe1,0x8f,0x62,0xde,0x8c,0xcd,0xf6,0x33,
- 0xfc,0x1b,0xf0,0x37,0xab,0x7c,0xd7,0x79,
- 0x80,0x5e,0x0d,0xbc,0xc0,0xaa,0xe1,0xcb,
- 0xce,0xe1,0xaf,0xb2,0xe0,0x27,0xdf,0x36,
- 0xbc,0x04,0xdc,0xec,0xbf,0x15,0x43,0x36,
- 0xc1,0x9f,0x0a,0xf7,0xe0,0xa6,0x47,0x29,
- 0x05,0xe7,0x99,0xf1,0x95,0x3d,0x2a,0x0f,
- 0xf3,0x34,0x8a,0xb2,0x1a,0xa4,0xad,0xaf,
- 0xd1,0xd2,0x34,0x44,0x1c,0xf8,0x07,0xc0,
- 0x3a,0x00
- }, {
- // RFC 8032 - test vector 4 - 11 octet
- 0x1f,0x0a,0x88,0x88,0xce,0x25,0xe8,0xd4,
- 0x58,0xa2,0x11,0x30,0x87,0x9b,0x84,0x0a,
- 0x90,0x89,0xd9,0x99,0xaa,0xba,0x03,0x9e,
- 0xaf,0x3e,0x3a,0xfa,0x09,0x0a,0x09,0xd3,
- 0x89,0xdb,0xa8,0x2c,0x4f,0xf2,0xae,0x8a,
- 0xc5,0xcd,0xfb,0x7c,0x55,0xe9,0x4d,0x5d,
- 0x96,0x1a,0x29,0xfe,0x01,0x09,0x94,0x1e,
- 0x00,0xb8,0xdb,0xde,0xea,0x6d,0x3b,0x05,
- 0x10,0x68,0xdf,0x72,0x54,0xc0,0xcd,0xc1,
- 0x29,0xcb,0xe6,0x2d,0xb2,0xdc,0x95,0x7d,
- 0xbb,0x47,0xb5,0x1f,0xd3,0xf2,0x13,0xfb,
- 0x86,0x98,0xf0,0x64,0x77,0x42,0x50,0xa5,
- 0x02,0x89,0x61,0xc9,0xbf,0x8f,0xfd,0x97,
- 0x3f,0xe5,0xd5,0xc2,0x06,0x49,0x2b,0x14,
- 0x0e,0x00
- }, {
- // RFC 8032 - test vector 5 - 12 octet
- 0x7e,0xee,0xab,0x7c,0x4e,0x50,0xfb,0x79,
- 0x9b,0x41,0x8e,0xe5,0xe3,0x19,0x7f,0xf6,
- 0xbf,0x15,0xd4,0x3a,0x14,0xc3,0x43,0x89,
- 0xb5,0x9d,0xd1,0xa7,0xb1,0xb8,0x5b,0x4a,
- 0xe9,0x04,0x38,0xac,0xa6,0x34,0xbe,0xa4,
- 0x5e,0x3a,0x26,0x95,0xf1,0x27,0x0f,0x07,
- 0xfd,0xcd,0xf7,0xc6,0x2b,0x8e,0xfe,0xaf,
- 0x00,0xb4,0x5c,0x2c,0x96,0xba,0x45,0x7e,
- 0xb1,0xa8,0xbf,0x07,0x5a,0x3d,0xb2,0x8e,
- 0x5c,0x24,0xf6,0xb9,0x23,0xed,0x4a,0xd7,
- 0x47,0xc3,0xc9,0xe0,0x3c,0x70,0x79,0xef,
- 0xb8,0x7c,0xb1,0x10,0xd3,0xa9,0x98,0x61,
- 0xe7,0x20,0x03,0xcb,0xae,0x6d,0x6b,0x8b,
- 0x82,0x7e,0x4e,0x6c,0x14,0x30,0x64,0xff,
- 0x3c,0x00
- }, {
- // RFC 8032 - test vector 3 - 1 octet - context
- 0xd4,0xf8,0xf6,0x13,0x17,0x70,0xdd,0x46,
- 0xf4,0x08,0x67,0xd6,0xfd,0x5d,0x50,0x55,
- 0xde,0x43,0x54,0x1f,0x8c,0x5e,0x35,0xab,
- 0xbc,0xd0,0x01,0xb3,0x2a,0x89,0xf7,0xd2,
- 0x15,0x1f,0x76,0x47,0xf1,0x1d,0x8c,0xa2,
- 0xae,0x27,0x9f,0xb8,0x42,0xd6,0x07,0x21,
- 0x7f,0xce,0x6e,0x04,0x2f,0x68,0x15,0xea,
- 0x00,0x0c,0x85,0x74,0x1d,0xe5,0xc8,0xda,
- 0x11,0x44,0xa6,0xa1,0xab,0xa7,0xf9,0x6d,
- 0xe4,0x25,0x05,0xd7,0xa7,0x29,0x85,0x24,
- 0xfd,0xa5,0x38,0xfc,0xcb,0xbb,0x75,0x4f,
- 0x57,0x8c,0x1c,0xad,0x10,0xd5,0x4d,0x0d,
- 0x54,0x28,0x40,0x7e,0x85,0xdc,0xbc,0x98,
- 0xa4,0x91,0x55,0xc1,0x37,0x64,0xe6,0x6c,
- 0x3c,0x00
- }, {
- // RFC 8032 - test vector 1 - prehash - abc
- 0x82,0x2f,0x69,0x01,0xf7,0x48,0x0f,0x3d,
- 0x5f,0x56,0x2c,0x59,0x29,0x94,0xd9,0x69,
- 0x36,0x02,0x87,0x56,0x14,0x48,0x32,0x56,
- 0x50,0x56,0x00,0xbb,0xc2,0x81,0xae,0x38,
- 0x1f,0x54,0xd6,0xbc,0xe2,0xea,0x91,0x15,
- 0x74,0x93,0x2f,0x52,0xa4,0xe6,0xca,0xdd,
- 0x78,0x76,0x93,0x75,0xec,0x3f,0xfd,0x1b,
- 0x80,0x1a,0x0d,0x9b,0x3f,0x40,0x30,0xcd,
- 0x43,0x39,0x64,0xb6,0x45,0x7e,0xa3,0x94,
- 0x76,0x51,0x12,0x14,0xf9,0x74,0x69,0xb5,
- 0x7d,0xd3,0x2d,0xbc,0x56,0x0a,0x9a,0x94,
- 0xd0,0x0b,0xff,0x07,0x62,0x04,0x64,0xa3,
- 0xad,0x20,0x3d,0xf7,0xdc,0x7c,0xe3,0x60,
- 0xc3,0xcd,0x36,0x96,0xd9,0xd9,0xfa,0xb9,
- 0x0f,0x00
- }, {
- // RFC 8032 - test vector 2 - prehash - abc - context
- 0xc3,0x22,0x99,0xd4,0x6e,0xc8,0xff,0x02,
- 0xb5,0x45,0x40,0x98,0x28,0x14,0xdc,0xe9,
- 0xa0,0x58,0x12,0xf8,0x19,0x62,0xb6,0x49,
- 0xd5,0x28,0x09,0x59,0x16,0xa2,0xaa,0x48,
- 0x10,0x65,0xb1,0x58,0x04,0x23,0xef,0x92,
- 0x7e,0xcf,0x0a,0xf5,0x88,0x8f,0x90,0xda,
- 0x0f,0x6a,0x9a,0x85,0xad,0x5d,0xc3,0xf2,
- 0x80,0xd9,0x12,0x24,0xba,0x99,0x11,0xa3,
- 0x65,0x3d,0x00,0xe4,0x84,0xe2,0xce,0x23,
- 0x25,0x21,0x48,0x1c,0x86,0x58,0xdf,0x30,
- 0x4b,0xb7,0x74,0x5a,0x73,0x51,0x4c,0xdb,
- 0x9b,0xf3,0xe1,0x57,0x84,0xab,0x71,0x28,
- 0x4f,0x8d,0x07,0x04,0xa6,0x08,0xc5,0x4a,
- 0x6b,0x62,0xd9,0x7b,0xeb,0x51,0x1d,0x13,
- 0x21,0x00
- }, {
- // RFC 8032 - test vector 6 - 13 octet
- 0x6a,0x12,0x06,0x6f,0x55,0x33,0x1b,0x6c,
- 0x22,0xac,0xd5,0xd5,0xbf,0xc5,0xd7,0x12,
- 0x28,0xfb,0xda,0x80,0xae,0x8d,0xec,0x26,
- 0xbd,0xd3,0x06,0x74,0x3c,0x50,0x27,0xcb,
- 0x48,0x90,0x81,0x0c,0x16,0x2c,0x02,0x74,
- 0x68,0x67,0x5e,0xcf,0x64,0x5a,0x83,0x17,
- 0x6c,0x0d,0x73,0x23,0xa2,0xcc,0xde,0x2d,
- 0x80,0xef,0xe5,0xa1,0x26,0x8e,0x8a,0xca,
- 0x1d,0x6f,0xbc,0x19,0x4d,0x3f,0x77,0xc4,
- 0x49,0x86,0xeb,0x4a,0xb4,0x17,0x79,0x19,
- 0xad,0x8b,0xec,0x33,0xeb,0x47,0xbb,0xb5,
- 0xfc,0x6e,0x28,0x19,0x6f,0xd1,0xca,0xf5,
- 0x6b,0x4e,0x7e,0x0b,0xa5,0x51,0x92,0x34,
- 0xd0,0x47,0x15,0x5a,0xc7,0x27,0xa1,0x05,
- 0x31,0x00
- }, {
- // RFC 8032 - test vector 7 - 64 octet
- 0x55,0x4b,0xc2,0x48,0x08,0x60,0xb4,0x9e,
- 0xab,0x85,0x32,0xd2,0xa5,0x33,0xb7,0xd5,
- 0x78,0xef,0x47,0x3e,0xeb,0x58,0xc9,0x8b,
- 0xb2,0xd0,0xe1,0xce,0x48,0x8a,0x98,0xb1,
- 0x8d,0xfd,0xe9,0xb9,0xb9,0x07,0x75,0xe6,
- 0x7f,0x47,0xd4,0xa1,0xc3,0x48,0x20,0x58,
- 0xef,0xc9,0xf4,0x0d,0x2c,0xa0,0x33,0xa0,
- 0x80,0x1b,0x63,0xd4,0x5b,0x3b,0x72,0x2e,
- 0xf5,0x52,0xba,0xd3,0xb4,0xcc,0xb6,0x67,
- 0xda,0x35,0x01,0x92,0xb6,0x1c,0x50,0x8c,
- 0xf7,0xb6,0xb5,0xad,0xad,0xc2,0xc8,0xd9,
- 0xa4,0x46,0xef,0x00,0x3f,0xb0,0x5c,0xba,
- 0x5f,0x30,0xe8,0x8e,0x36,0xec,0x27,0x03,
- 0xb3,0x49,0xca,0x22,0x9c,0x26,0x70,0x83,
- 0x39,0x00
- }, {
- // RFC 8032 - test vector 8 - 256 octet
- 0xc6,0x50,0xdd,0xbb,0x06,0x01,0xc1,0x9c,
- 0xa1,0x14,0x39,0xe1,0x64,0x0d,0xd9,0x31,
- 0xf4,0x3c,0x51,0x8e,0xa5,0xbe,0xa7,0x0d,
- 0x3d,0xcd,0xe5,0xf4,0x19,0x1f,0xe5,0x3f,
- 0x00,0xcf,0x96,0x65,0x46,0xb7,0x2b,0xcc,
- 0x7d,0x58,0xbe,0x2b,0x9b,0xad,0xef,0x28,
- 0x74,0x39,0x54,0xe3,0xa4,0x4a,0x23,0xf8,
- 0x80,0xe8,0xd4,0xf1,0xcf,0xce,0x2d,0x7a,
- 0x61,0x45,0x2d,0x26,0xda,0x05,0x89,0x6f,
- 0x0a,0x50,0xda,0x66,0xa2,0x39,0xa8,0xa1,
- 0x88,0xb6,0xd8,0x25,0xb3,0x30,0x5a,0xd7,
- 0x7b,0x73,0xfb,0xac,0x08,0x36,0xec,0xc6,
- 0x09,0x87,0xfd,0x08,0x52,0x7c,0x1a,0x8e,
- 0x80,0xd5,0x82,0x3e,0x65,0xca,0xfe,0x2a,
- 0x3d,0x00
- }, {
- // RFC 8032 - test vector 9 - 1023 octet
- 0xe3,0x01,0x34,0x5a,0x41,0xa3,0x9a,0x4d,
- 0x72,0xff,0xf8,0xdf,0x69,0xc9,0x80,0x75,
- 0xa0,0xcc,0x08,0x2b,0x80,0x2f,0xc9,0xb2,
- 0xb6,0xbc,0x50,0x3f,0x92,0x6b,0x65,0xbd,
- 0xdf,0x7f,0x4c,0x8f,0x1c,0xb4,0x9f,0x63,
- 0x96,0xaf,0xc8,0xa7,0x0a,0xbe,0x6d,0x8a,
- 0xef,0x0d,0xb4,0x78,0xd4,0xc6,0xb2,0x97,
- 0x00,0x76,0xc6,0xa0,0x48,0x4f,0xe7,0x6d,
- 0x76,0xb3,0xa9,0x76,0x25,0xd7,0x9f,0x1c,
- 0xe2,0x40,0xe7,0xc5,0x76,0x75,0x0d,0x29,
- 0x55,0x28,0x28,0x6f,0x71,0x9b,0x41,0x3d,
- 0xe9,0xad,0xa3,0xe8,0xeb,0x78,0xed,0x57,
- 0x36,0x03,0xce,0x30,0xd8,0xbb,0x76,0x17,
- 0x85,0xdc,0x30,0xdb,0xc3,0x20,0x86,0x9e,
- 0x1a,0x00
- }};
- template<> const Block Tests<Ed448Goldilocks>::eddsa_sk[] = {
- // RFC 8032 - test vector 1 - blank
- Block(ed448_eddsa_sk[0],57),
- // RFC 8032 - test vector 2/3 - 1 octet
- Block(ed448_eddsa_sk[1],57),
- // RFC 8032 - test vector 2/3 - 1 octet
- Block(ed448_eddsa_sk[1],57),
- // RFC 8032 - test vector 4 - 11 octet
- Block(ed448_eddsa_sk[2],57),
- // RFC 8032 - test vector 5 - 12 octet
- Block(ed448_eddsa_sk[3],57),
- // RFC 8032 - test vector 1 - prehash - blank
- Block(ed448_eddsa_sk[4],57),
- // RFC 8032 - test vector 1 - prehash - blank
- Block(ed448_eddsa_sk[4],57),
- // RFC 8032 - test vector 6 - 13 octet
- Block(ed448_eddsa_sk[5],57),
- // RFC 8032 - test vector 7 - 64 octet
- Block(ed448_eddsa_sk[6],57),
- // RFC 8032 - test vector 8 - 256 octet
- Block(ed448_eddsa_sk[7],57),
- // RFC 8032 - test vector 9 - 1023 octet
- Block(ed448_eddsa_sk[8],57)
- };
- template<> const Block Tests<Ed448Goldilocks>::eddsa_pk[] = {
- // RFC 8032 - test vector 1 - blank
- Block(ed448_eddsa_pk[0],57),
- // RFC 8032 - test vector 2/3 - 1 octet
- Block(ed448_eddsa_pk[1],57),
- // RFC 8032 - test vector 2/3 - 1 octet
- Block(ed448_eddsa_pk[1],57),
- // RFC 8032 - test vector 4 - 11 octet
- Block(ed448_eddsa_pk[2],57),
- // RFC 8032 - test vector 5 - 12 octet
- Block(ed448_eddsa_pk[3],57),
- // RFC 8032 - test vector 1 - prehash - abc
- Block(ed448_eddsa_pk[4],57),
- // RFC 8032 - test vector 1 - prehash - abc
- Block(ed448_eddsa_pk[4],57),
- // RFC 8032 - test vector 6 - 13 octet
- Block(ed448_eddsa_pk[5],57),
- // RFC 8032 - test vector 7 - 64 octet
- Block(ed448_eddsa_pk[6],57),
- // RFC 8032 - test vector 8 - 256 octet
- Block(ed448_eddsa_pk[7],57),
- // RFC 8032 - test vector 9 - 1023 octet
- Block(ed448_eddsa_pk[8],57)
- };
- template<> const Block Tests<Ed448Goldilocks>::eddsa_message[] = {
- // RFC 8032 - test vector 1 - blank
- Block(ed448_eddsa_message[0],0),
- // RFC 8032 - test vector 2/3 - 1 octet
- Block(ed448_eddsa_message[1],1),
- // RFC 8032 - test vector 2/3 - 1 octet
- Block(ed448_eddsa_message[1],1),
- // RFC 8032 - test vector 4 - 11 octet
- Block(ed448_eddsa_message[2],11),
- // RFC 8032 - test vector 5 - 12 octet
- Block(ed448_eddsa_message[3],12),
- // RFC 8032 - test vector 1/2 - prehash - abc
- Block(ed448_eddsa_message[4],3),
- // RFC 8032 - test vector 1/2 - prehash - abc
- Block(ed448_eddsa_message[4],3),
- // RFC 8032 - test vector 6 - 13 octet
- Block(ed448_eddsa_message[5],13),
- // RFC 8032 - test vector 7 - 64 octet
- Block(ed448_eddsa_message[6],64),
- // RFC 8032 - test vector 8 - 256 octet
- Block(ed448_eddsa_message[7],256),
- // RFC 8032 - test vector 9 - 1023 octet
- Block(ed448_eddsa_message[8],1023)
- };
- template<> const Block Tests<Ed448Goldilocks>::eddsa_context[] = {
- // RFC 8032 - test vector 1 - blank
- Block(NULL,0),
- // RFC 8032 - test vector 2 - 1 octet
- Block(NULL,0),
- // RFC 8032 - test vector 3 - 1 octet
- Block(ed448_eddsa_context[0],3),
- // RFC 8032 - test vector 4 - 11 octet
- Block(NULL,0),
- // RFC 8032 - test vector 5 - 12 octet
- Block(NULL,0),
- // RFC 8032 - test vector 1 - prehash - abc
- Block(NULL,0),
- // RFC 8032 - test vector 2 - prehash - abc - context
- Block(ed448_eddsa_context[0],3),
- // RFC 8032 - test vector 6 - 13 octet
- Block(NULL,0),
- // RFC 8032 - test vector 7 - 64 octet
- Block(NULL,0),
- // RFC 8032 - test vector 8 - 256 octet
- Block(NULL,0),
- // RFC 8032 - test vector 9 - 1023 octet
- Block(NULL,0)
-
- };
- template<> const Block Tests<Ed448Goldilocks>::eddsa_sig[] = {
- // RFC 8032 - test vector 1 - blank
- Block(ed448_eddsa_sig[0],114),
- // RFC 8032 - test vector 2 - 1 octet
- Block(ed448_eddsa_sig[1],114),
- // RFC 8032 - test vector 3 - 1 octet - context
- Block(ed448_eddsa_sig[4],114),
- // RFC 8032 - test vector 4 - 11 octet
- Block(ed448_eddsa_sig[2],114),
- // RFC 8032 - test vector 5 - 12 octet
- Block(ed448_eddsa_sig[3],114),
- // RFC 8032 - test vector 1 - prehash - abc
- Block(ed448_eddsa_sig[5],114),
- // RFC 8032 - test vector 2 - prehash - abc - context
- Block(ed448_eddsa_sig[6],114),
- // RFC 8032 - test vector 6 - 13 octet
- Block(ed448_eddsa_sig[7],114),
- // RFC 8032 - test vector 7 - 64 octet
- Block(ed448_eddsa_sig[8],114),
- // RFC 8032 - test vector 8 - 256 octet
- Block(ed448_eddsa_sig[9],114),
- // RFC 8032 - test vector 9 - 1023 octet
- Block(ed448_eddsa_sig[10],114)
- };
-
- template<> const bool Tests<Ed448Goldilocks>::eddsa_verify_should_succeed[] = {
- true,
- true,
- true,
- true,
- true,
- true,
- true,
- true,
- true,
- true,
- true
- };
-
- const uint8_t ed25519_eddsa_sk[][32] = {{
- 0x9d,0x61,0xb1,0x9d,0xef,0xfd,0x5a,0x60,
- 0xba,0x84,0x4a,0xf4,0x92,0xec,0x2c,0xc4,
- 0x44,0x49,0xc5,0x69,0x7b,0x32,0x69,0x19,
- 0x70,0x3b,0xac,0x03,0x1c,0xae,0x7f,0x60
- }, {
- 0x4c,0xcd,0x08,0x9b,0x28,0xff,0x96,0xda,
- 0x9d,0xb6,0xc3,0x46,0xec,0x11,0x4e,0x0f,
- 0x5b,0x8a,0x31,0x9f,0x35,0xab,0xa6,0x24,
- 0xda,0x8c,0xf6,0xed,0x4f,0xb8,0xa6,0xfb
- }, {
- 0xc5,0xaa,0x8d,0xf4,0x3f,0x9f,0x83,0x7b,
- 0xed,0xb7,0x44,0x2f,0x31,0xdc,0xb7,0xb1,
- 0x66,0xd3,0x85,0x35,0x07,0x6f,0x09,0x4b,
- 0x85,0xce,0x3a,0x2e,0x0b,0x44,0x58,0xf7
- }, {
- 0x83,0x3f,0xe6,0x24,0x09,0x23,0x7b,0x9d,
- 0x62,0xec,0x77,0x58,0x75,0x20,0x91,0x1e,
- 0x9a,0x75,0x9c,0xec,0x1d,0x19,0x75,0x5b,
- 0x7d,0xa9,0x01,0xb9,0x6d,0xca,0x3d,0x42
- }, {
- 0x03,0x05,0x33,0x4e,0x38,0x1a,0xf7,0x8f,
- 0x14,0x1c,0xb6,0x66,0xf6,0x19,0x9f,0x57,
- 0xbc,0x34,0x95,0x33,0x5a,0x25,0x6a,0x95,
- 0xbd,0x2a,0x55,0xbf,0x54,0x66,0x63,0xf6
- }};
- const uint8_t ed25519_eddsa_pk[][32] = {{
- 0xd7,0x5a,0x98,0x01,0x82,0xb1,0x0a,0xb7,
- 0xd5,0x4b,0xfe,0xd3,0xc9,0x64,0x07,0x3a,
- 0x0e,0xe1,0x72,0xf3,0xda,0xa6,0x23,0x25,
- 0xaf,0x02,0x1a,0x68,0xf7,0x07,0x51,0x1a
- }, {
- 0x3d,0x40,0x17,0xc3,0xe8,0x43,0x89,0x5a,
- 0x92,0xb7,0x0a,0xa7,0x4d,0x1b,0x7e,0xbc,
- 0x9c,0x98,0x2c,0xcf,0x2e,0xc4,0x96,0x8c,
- 0xc0,0xcd,0x55,0xf1,0x2a,0xf4,0x66,0x0c
- }, {
- 0xfc,0x51,0xcd,0x8e,0x62,0x18,0xa1,0xa3,
- 0x8d,0xa4,0x7e,0xd0,0x02,0x30,0xf0,0x58,
- 0x08,0x16,0xed,0x13,0xba,0x33,0x03,0xac,
- 0x5d,0xeb,0x91,0x15,0x48,0x90,0x80,0x25
- }, {
- 0xec,0x17,0x2b,0x93,0xad,0x5e,0x56,0x3b,
- 0xf4,0x93,0x2c,0x70,0xe1,0x24,0x50,0x34,
- 0xc3,0x54,0x67,0xef,0x2e,0xfd,0x4d,0x64,
- 0xeb,0xf8,0x19,0x68,0x34,0x67,0xe2,0xbf
- }, {
- 0xdf,0xc9,0x42,0x5e,0x4f,0x96,0x8f,0x7f,
- 0x0c,0x29,0xf0,0x25,0x9c,0xf5,0xf9,0xae,
- 0xd6,0x85,0x1c,0x2b,0xb4,0xad,0x8b,0xfb,
- 0x86,0x0c,0xfe,0xe0,0xab,0x24,0x82,0x92
- }, {
- 0xc7,0x17,0x6a,0x70,0x3d,0x4d,0xd8,0x4f,
- 0xba,0x3c,0x0b,0x76,0x0d,0x10,0x67,0x0f,
- 0x2a,0x20,0x53,0xfa,0x2c,0x39,0xcc,0xc6,
- 0x4e,0xc7,0xfd,0x77,0x92,0xac,0x03,0xfa
- }, {
- 0xf7,0xba,0xde,0xc5,0xb8,0xab,0xea,0xf6,
- 0x99,0x58,0x39,0x92,0x21,0x9b,0x7b,0x22,
- 0x3f,0x1d,0xf3,0xfb,0xbe,0xa9,0x19,0x84,
- 0x4e,0x3f,0x7c,0x55,0x4a,0x43,0xdd,0x43
- }, {
- 0xcd,0xb2,0x67,0xce,0x40,0xc5,0xcd,0x45,
- 0x30,0x6f,0xa5,0xd2,0xf2,0x97,0x31,0x45,
- 0x93,0x87,0xdb,0xf9,0xeb,0x93,0x3b,0x7b,
- 0xd5,0xae,0xd9,0xa7,0x65,0xb8,0x8d,0x4d
- }, {
- 0x44,0x2a,0xad,0x9f,0x08,0x9a,0xd9,0xe1,
- 0x46,0x47,0xb1,0xef,0x90,0x99,0xa1,0xff,
- 0x47,0x98,0xd7,0x85,0x89,0xe6,0x6f,0x28,
- 0xec,0xa6,0x9c,0x11,0xf5,0x82,0xa6,0x23
- }};
- const uint8_t ed25519_eddsa_message[][32] = {{
- 0
- }, {
- 0x72
- }, {
- 0xaf,0x82
- }, {
- 0x61,0x62,0x63
- }, {
- 0xf7,0x26,0x93,0x6d,0x19,0xc8,0x00,0x49,
- 0x4e,0x3f,0xda,0xff,0x20,0xb2,0x76,0xa8
- }, { // https://eprint.iacr.org/2020/1244.pdf
- 0x8c,0x93,0x25,0x5d,0x71,0xdc,0xab,0x10,
- 0xe8,0xf3,0x79,0xc2,0x62,0x00,0xf3,0xc7,
- 0xbd,0x5f,0x09,0xd9,0xbc,0x30,0x68,0xd3,
- 0xef,0x4e,0xde,0xb4,0x85,0x30,0x22,0xb6
- }, {
- 0x9b,0xd9,0xf4,0x4f,0x4d,0xcc,0x75,0xbd,
- 0x53,0x1b,0x56,0xb2,0xcd,0x28,0x0b,0x0b,
- 0xb3,0x8f,0xc1,0xcd,0x6d,0x12,0x30,0xe1,
- 0x48,0x61,0xd8,0x61,0xde,0x09,0x2e,0x79
- }, {
- 0xae,0xbf,0x3f,0x26,0x01,0xa0,0xc8,0xc5,
- 0xd3,0x9c,0xc7,0xd8,0x91,0x16,0x42,0xf7,
- 0x40,0xb7,0x81,0x68,0x21,0x8d,0xa8,0x47,
- 0x17,0x72,0xb3,0x5f,0x9d,0x35,0xb9,0xab
- }, {
- 0xe4,0x7d,0x62,0xc6,0x3f,0x83,0x0d,0xc7,
- 0xa6,0x85,0x1a,0x0b,0x1f,0x33,0xae,0x4b,
- 0xb2,0xf5,0x07,0xfb,0x6c,0xff,0xec,0x40,
- 0x11,0xea,0xcc,0xd5,0x5b,0x53,0xf5,0x6c
- }, {
- 0x85,0xe2,0x41,0xa0,0x7d,0x14,0x8b,0x41,
- 0xe4,0x7d,0x62,0xc6,0x3f,0x83,0x0d,0xc7,
- 0xa6,0x85,0x1a,0x0b,0x1f,0x33,0xae,0x4b,
- 0xb2,0xf5,0x07,0xfb,0x6c,0xff,0xec,0x40
- }, {
- 0xfd,0xae,0xbc,0x42,0x9f,0x4a,0x73,0x59,
- 0x32,0xa1,0x60,0xda,0x13,0x01,0x08,0x0c,
- 0x13,0x28,0x0e,0xea,0x8b,0xc2,0x80,0xd1,
- 0xb3,0x92,0xc6,0xb9,0xe6,0xba,0x3a,0x5a
- }, {
- 0x84,0xb6,0x98,0xd3,0x9b,0xe1,0x26,0xff,
- 0x55,0xfe,0x45,0x07,0x9e,0x6c,0x8b,0xf6,
- 0x4a,0x0d,0x7d,0xb6,0x99,0x45,0x60,0xb4,
- 0xe9,0x6b,0x70,0x21,0xeb,0x39,0xc1,0xa1
- }};
- const uint8_t ed25519_eddsa_context[][3] = {{
- 0x66,0x6f,0x6f
- }, {
- 0x62,0x61,0x72
- }};
- const uint8_t ed25519_eddsa_sig[][64] = {{
- 0xe5,0x56,0x43,0x00,0xc3,0x60,0xac,0x72,
- 0x90,0x86,0xe2,0xcc,0x80,0x6e,0x82,0x8a,
- 0x84,0x87,0x7f,0x1e,0xb8,0xe5,0xd9,0x74,
- 0xd8,0x73,0xe0,0x65,0x22,0x49,0x01,0x55,
- 0x5f,0xb8,0x82,0x15,0x90,0xa3,0x3b,0xac,
- 0xc6,0x1e,0x39,0x70,0x1c,0xf9,0xb4,0x6b,
- 0xd2,0x5b,0xf5,0xf0,0x59,0x5b,0xbe,0x24,
- 0x65,0x51,0x41,0x43,0x8e,0x7a,0x10,0x0b
- } , {
- 0x92,0xa0,0x09,0xa9,0xf0,0xd4,0xca,0xb8,
- 0x72,0x0e,0x82,0x0b,0x5f,0x64,0x25,0x40,
- 0xa2,0xb2,0x7b,0x54,0x16,0x50,0x3f,0x8f,
- 0xb3,0x76,0x22,0x23,0xeb,0xdb,0x69,0xda,
- 0x08,0x5a,0xc1,0xe4,0x3e,0x15,0x99,0x6e,
- 0x45,0x8f,0x36,0x13,0xd0,0xf1,0x1d,0x8c,
- 0x38,0x7b,0x2e,0xae,0xb4,0x30,0x2a,0xee,
- 0xb0,0x0d,0x29,0x16,0x12,0xbb,0x0c,0x00
- }, {
- 0x62,0x91,0xd6,0x57,0xde,0xec,0x24,0x02,
- 0x48,0x27,0xe6,0x9c,0x3a,0xbe,0x01,0xa3,
- 0x0c,0xe5,0x48,0xa2,0x84,0x74,0x3a,0x44,
- 0x5e,0x36,0x80,0xd7,0xdb,0x5a,0xc3,0xac,
- 0x18,0xff,0x9b,0x53,0x8d,0x16,0xf2,0x90,
- 0xae,0x67,0xf7,0x60,0x98,0x4d,0xc6,0x59,
- 0x4a,0x7c,0x15,0xe9,0x71,0x6e,0xd2,0x8d,
- 0xc0,0x27,0xbe,0xce,0xea,0x1e,0xc4,0x0a
- }, {
- 0x98,0xa7,0x02,0x22,0xf0,0xb8,0x12,0x1a,
- 0xa9,0xd3,0x0f,0x81,0x3d,0x68,0x3f,0x80,
- 0x9e,0x46,0x2b,0x46,0x9c,0x7f,0xf8,0x76,
- 0x39,0x49,0x9b,0xb9,0x4e,0x6d,0xae,0x41,
- 0x31,0xf8,0x50,0x42,0x46,0x3c,0x2a,0x35,
- 0x5a,0x20,0x03,0xd0,0x62,0xad,0xf5,0xaa,
- 0xa1,0x0b,0x8c,0x61,0xe6,0x36,0x06,0x2a,
- 0xaa,0xd1,0x1c,0x2a,0x26,0x08,0x34,0x06
- }, {
- 0x55,0xa4,0xcc,0x2f,0x70,0xa5,0x4e,0x04,
- 0x28,0x8c,0x5f,0x4c,0xd1,0xe4,0x5a,0x7b,
- 0xb5,0x20,0xb3,0x62,0x92,0x91,0x18,0x76,
- 0xca,0xda,0x73,0x23,0x19,0x8d,0xd8,0x7a,
- 0x8b,0x36,0x95,0x0b,0x95,0x13,0x00,0x22,
- 0x90,0x7a,0x7f,0xb7,0xc4,0xe9,0xb2,0xd5,
- 0xf6,0xcc,0xa6,0x85,0xa5,0x87,0xb4,0xb2,
- 0x1f,0x4b,0x88,0x8e,0x4e,0x7e,0xdb,0x0d
- }, {
- 0xfc,0x60,0xd5,0x87,0x2f,0xc4,0x6b,0x3a,
- 0xa6,0x9f,0x8b,0x5b,0x43,0x51,0xd5,0x80,
- 0x8f,0x92,0xbc,0xc0,0x44,0x60,0x6d,0xb0,
- 0x97,0xab,0xab,0x6d,0xbc,0xb1,0xae,0xe3,
- 0x21,0x6c,0x48,0xe8,0xb3,0xb6,0x64,0x31,
- 0xb5,0xb1,0x86,0xd1,0xd2,0x8f,0x8e,0xe1,
- 0x5a,0x5c,0xa2,0xdf,0x66,0x68,0x34,0x62,
- 0x91,0xc2,0x04,0x3d,0x4e,0xb3,0xe9,0x0d
- }, {
- 0xc7,0x17,0x6a,0x70,0x3d,0x4d,0xd8,0x4f,
- 0xba,0x3c,0x0b,0x76,0x0d,0x10,0x67,0x0f,
- 0x2a,0x20,0x53,0xfa,0x2c,0x39,0xcc,0xc6,
- 0x4e,0xc7,0xfd,0x77,0x92,0xac,0x03,0x7a,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- }, {
- 0xf7,0xba,0xde,0xc5,0xb8,0xab,0xea,0xf6,
- 0x99,0x58,0x39,0x92,0x21,0x9b,0x7b,0x22,
- 0x3f,0x1d,0xf3,0xfb,0xbe,0xa9,0x19,0x84,
- 0x4e,0x3f,0x7c,0x55,0x4a,0x43,0xdd,0x43,
- 0xa5,0xbb,0x70,0x47,0x86,0xbe,0x79,0xfc,
- 0x47,0x6f,0x91,0xd3,0xf3,0xf8,0x9b,0x03,
- 0x98,0x4d,0x80,0x68,0xdc,0xf1,0xbb,0x7d,
- 0xfc,0x66,0x37,0xb4,0x54,0x50,0xac,0x04
- }, {
- 0xc7,0x17,0x6a,0x70,0x3d,0x4d,0xd8,0x4f,
- 0xba,0x3c,0x0b,0x76,0x0d,0x10,0x67,0x0f,
- 0x2a,0x20,0x53,0xfa,0x2c,0x39,0xcc,0xc6,
- 0x4e,0xc7,0xfd,0x77,0x92,0xac,0x03,0xfa,
- 0x8c,0x4b,0xd4,0x5a,0xec,0xac,0xa5,0xb2,
- 0x4f,0xb9,0x7b,0xc1,0x0a,0xc2,0x7a,0xc8,
- 0x75,0x1a,0x7d,0xfe,0x1b,0xaf,0xf8,0xb9,
- 0x53,0xec,0x9f,0x58,0x33,0xca,0x26,0x0e
- }, {
- 0x90,0x46,0xa6,0x47,0x50,0x44,0x49,0x38,
- 0xde,0x19,0xf2,0x27,0xbb,0x80,0x48,0x5e,
- 0x92,0xb8,0x3f,0xdb,0x4b,0x65,0x06,0xc1,
- 0x60,0x48,0x4c,0x01,0x6c,0xc1,0x85,0x2f,
- 0x87,0x90,0x9e,0x14,0x42,0x8a,0x7a,0x1d,
- 0x62,0xe9,0xf2,0x2f,0x3d,0x3a,0xd7,0x80,
- 0x2d,0xb0,0x2e,0xb2,0xe6,0x88,0xb6,0xc5,
- 0x2f,0xcd,0x66,0x48,0xa9,0x8b,0xd0,0x09
- }, {
- 0x16,0x0a,0x1c,0xb0,0xdc,0x9c,0x02,0x58,
- 0xcd,0x0a,0x7d,0x23,0xe9,0x4d,0x8f,0xa8,
- 0x78,0xbc,0xb1,0x92,0x5f,0x2c,0x64,0x24,
- 0x6b,0x2d,0xee,0x17,0x96,0xbe,0xd5,0x12,
- 0x5e,0xc6,0xbc,0x98,0x2a,0x26,0x9b,0x72,
- 0x3e,0x06,0x68,0xe5,0x40,0x91,0x1a,0x9a,
- 0x6a,0x58,0x92,0x1d,0x69,0x25,0xe4,0x34,
- 0xab,0x10,0xaa,0x79,0x40,0x55,0x1a,0x09
- }, {
- 0x21,0x12,0x2a,0x84,0xe0,0xb5,0xfc,0xa4,
- 0x05,0x2f,0x5b,0x12,0x35,0xc8,0x0a,0x53,
- 0x78,0x78,0xb3,0x8f,0x31,0x42,0x35,0x6b,
- 0x2c,0x23,0x84,0xeb,0xad,0x46,0x68,0xb7,
- 0xe4,0x0b,0xc8,0x36,0xda,0xc0,0xf7,0x10,
- 0x76,0xf9,0xab,0xe3,0xa5,0x3f,0x9c,0x03,
- 0xc1,0xce,0xee,0xdd,0xb6,0x58,0xd0,0x03,
- 0x04,0x94,0xac,0xe5,0x86,0x68,0x74,0x05
- }, {
- 0xe9,0x6f,0x66,0xbe,0x97,0x6d,0x82,0xe6,
- 0x01,0x50,0xba,0xec,0xff,0x99,0x06,0x68,
- 0x4a,0xeb,0xb1,0xef,0x18,0x1f,0x67,0xa7,
- 0x18,0x9a,0xc7,0x8e,0xa2,0x3b,0x6c,0x0e,
- 0x54,0x7f,0x76,0x90,0xa0,0xe2,0xdd,0xcd,
- 0x04,0xd8,0x7d,0xbc,0x34,0x90,0xdc,0x19,
- 0xb3,0xb3,0x05,0x2f,0x7f,0xf0,0x53,0x8c,
- 0xb6,0x8a,0xfb,0x36,0x9b,0xa3,0xa5,0x14
- }, {
- 0x8c,0xe5,0xb9,0x6c,0x8f,0x26,0xd0,0xab,
- 0x6c,0x47,0x95,0x8c,0x9e,0x68,0xb9,0x37,
- 0x10,0x4c,0xd3,0x6e,0x13,0xc3,0x35,0x66,
- 0xac,0xd2,0xfe,0x8d,0x38,0xaa,0x19,0x42,
- 0x7e,0x71,0xf9,0x8a,0x47,0x34,0x74,0xf2,
- 0xf1,0x3f,0x06,0xf9,0x7c,0x20,0xd5,0x8c,
- 0xc3,0xf5,0x4b,0x8b,0xd0,0xd2,0x72,0xf4,
- 0x2b,0x69,0x5d,0xd7,0xe8,0x9a,0x8c,0x22
- }, {
- 0xed,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0x45,0x4d,0x37,0x0c,0x8d,0x9f,0xc3,0x23,
- 0xa4,0x14,0x50,0xf8,0xd5,0x13,0xea,0xfe,
- 0xb5,0xb0,0x69,0x73,0x90,0xc1,0xe5,0x05,
- 0xa0,0xd4,0xdd,0xc7,0x1f,0x56,0x66,0x07
- }, {
- 0xed,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
- 0x08,0x4d,0x5b,0x99,0xc2,0xa9,0x46,0x3d,
- 0x9c,0x8b,0xd5,0x02,0x69,0x16,0x99,0x69,
- 0x84,0xee,0xec,0x87,0xdd,0xf1,0xd3,0xbe,
- 0x32,0x90,0x06,0xac,0xe1,0xb3,0x7b,0x09
- }};
-
- template<> const bool Tests<Ristretto>::eddsa_prehashed[] = {
- false,
- false,
- false,
- true,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false
- };
- template<> const Block Tests<Ristretto>::eddsa_sk[] = {
- Block(ed25519_eddsa_sk[0],32),
- Block(ed25519_eddsa_sk[1],32),
- Block(ed25519_eddsa_sk[2],32),
- Block(ed25519_eddsa_sk[3],32),
- Block(ed25519_eddsa_sk[4],32),
- Block(ed25519_eddsa_sk[4],32),
- // https://eprint.iacr.org/2020/1244.pdf
- // These tests don't have an associated private key
- // In many cases the public key is malformed
- Block(NULL,0),
- Block(NULL,0),
- Block(NULL,0),
- Block(NULL,0),
- Block(NULL,0),
- Block(NULL,0),
- Block(NULL,0),
- Block(NULL,0),
- Block(NULL,0),
- Block(NULL,0),
- };
- template<> const Block Tests<Ristretto>::eddsa_pk[] = {
- Block(ed25519_eddsa_pk[0],32),
- Block(ed25519_eddsa_pk[1],32),
- Block(ed25519_eddsa_pk[2],32),
- Block(ed25519_eddsa_pk[3],32),
- Block(ed25519_eddsa_pk[4],32),
- Block(ed25519_eddsa_pk[4],32),
- // https://eprint.iacr.org/2020/1244.pdf
- Block(ed25519_eddsa_pk[5],32),
- Block(ed25519_eddsa_pk[5],32),
- Block(ed25519_eddsa_pk[6],32),
- Block(ed25519_eddsa_pk[7],32),
- Block(ed25519_eddsa_pk[7],32),
- Block(ed25519_eddsa_pk[7],32),
- Block(ed25519_eddsa_pk[8],32),
- Block(ed25519_eddsa_pk[8],32),
- Block(ed25519_eddsa_pk[6],32),
- Block(ed25519_eddsa_pk[6],32)
- };
- template<> const Block Tests<Ristretto>::eddsa_context[] = {
- EdDSA<Ristretto>::NO_CONTEXT(),
- EdDSA<Ristretto>::NO_CONTEXT(),
- EdDSA<Ristretto>::NO_CONTEXT(),
- Block(NULL,0),
- Block(ed25519_eddsa_context[0],3),
- Block(ed25519_eddsa_context[1],3),
- // https://eprint.iacr.org/2020/1244.pdf
- EdDSA<Ristretto>::NO_CONTEXT(),
- EdDSA<Ristretto>::NO_CONTEXT(),
- EdDSA<Ristretto>::NO_CONTEXT(),
- EdDSA<Ristretto>::NO_CONTEXT(),
- EdDSA<Ristretto>::NO_CONTEXT(),
- EdDSA<Ristretto>::NO_CONTEXT(),
- EdDSA<Ristretto>::NO_CONTEXT(),
- EdDSA<Ristretto>::NO_CONTEXT(),
- EdDSA<Ristretto>::NO_CONTEXT(),
- EdDSA<Ristretto>::NO_CONTEXT()
- };
- template<> const Block Tests<Ristretto>::eddsa_message[] = {
- Block(ed25519_eddsa_message[0],0),
- Block(ed25519_eddsa_message[1],1),
- Block(ed25519_eddsa_message[2],2),
- Block(ed25519_eddsa_message[3],3),
- Block(ed25519_eddsa_message[4],16),
- Block(ed25519_eddsa_message[4],16),
- // https://eprint.iacr.org/2020/1244.pdf
- Block(ed25519_eddsa_message[5],32),
- Block(ed25519_eddsa_message[6],32),
- Block(ed25519_eddsa_message[7],32),
- Block(ed25519_eddsa_message[6],32),
- Block(ed25519_eddsa_message[8],32),
- Block(ed25519_eddsa_message[8],32),
- Block(ed25519_eddsa_message[9],32),
- Block(ed25519_eddsa_message[9],32),
- Block(ed25519_eddsa_message[10],32),
- Block(ed25519_eddsa_message[11],32)
- };
- template<> const Block Tests<Ristretto>::eddsa_sig[] = {
- Block(ed25519_eddsa_sig[0],64),
- Block(ed25519_eddsa_sig[1],64),
- Block(ed25519_eddsa_sig[2],64),
- Block(ed25519_eddsa_sig[3],64),
- Block(ed25519_eddsa_sig[4],64),
- Block(ed25519_eddsa_sig[5],64),
- // https://eprint.iacr.org/2020/1244.pdf
- Block(ed25519_eddsa_sig[6],64),
- Block(ed25519_eddsa_sig[7],64),
- Block(ed25519_eddsa_sig[8],64),
- Block(ed25519_eddsa_sig[9],64),
- Block(ed25519_eddsa_sig[10],64),
- Block(ed25519_eddsa_sig[11],64),
- Block(ed25519_eddsa_sig[12],64),
- Block(ed25519_eddsa_sig[13],64),
- Block(ed25519_eddsa_sig[14],64),
- Block(ed25519_eddsa_sig[15],64)
- };
- template<> const bool Tests<Ristretto>::eddsa_verify_should_succeed[] = {
- true,
- true,
- true,
- true,
- true,
- true,
- // https://eprint.iacr.org/2020/1244.pdf
- // Note that passing the first two means we conform
- // to RFC 8032, but sigs are malleable for the zero-key
- true,
- true,
- true,
- true,
- true,
- true,
- false,
- false,
- false,
- false
- };
|