From 7926ceb12039fc8c7fd96e36026c9838403ea8cb Mon Sep 17 00:00:00 2001 From: dell5060 Date: Fri, 2 Jun 2023 11:18:01 -0600 Subject: [PATCH] Updated Key gen to convert the keys located in /certs/statickeys to be used in buffers --- gencertbuf.pl | 54 ++++++++++++---- wolfcrypt/test/test.c | 18 +++++- wolfssl/certs_test.h | 146 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 203 insertions(+), 15 deletions(-) diff --git a/gencertbuf.pl b/gencertbuf.pl index 9d8a381f9..5bc018874 100755 --- a/gencertbuf.pl +++ b/gencertbuf.pl @@ -19,18 +19,19 @@ my $outputFile = "./wolfssl/certs_test.h"; # Used with HAVE_ECC && USE_CERT_BUFFERS_256 my @fileList_ecc = ( - [ "./certs/ecc-client-key.der", "ecc_clikey_der_256" ], - [ "./certs/ecc-client-keyPub.der", "ecc_clikeypub_der_256" ], - [ "./certs/client-ecc-cert.der", "cliecc_cert_der_256" ], - [ "./certs/ecc-key.der", "ecc_key_der_256" ], - [ "./certs/ecc-keyPub.der", "ecc_key_pub_der_256" ], - [ "./certs/server-ecc-comp.der", "serv_ecc_comp_der_256" ], - [ "./certs/server-ecc-rsa.der", "serv_ecc_rsa_der_256" ], - [ "./certs/server-ecc.der", "serv_ecc_der_256" ], - [ "./certs/ca-ecc-key.der", "ca_ecc_key_der_256" ], - [ "./certs/ca-ecc-cert.der", "ca_ecc_cert_der_256" ], - [ "./certs/ca-ecc384-key.der", "ca_ecc_key_der_384" ], - [ "./certs/ca-ecc384-cert.der", "ca_ecc_cert_der_384" ] + [ "./certs/ecc-client-key.der", "ecc_clikey_der_256" ], + [ "./certs/ecc-client-keyPub.der", "ecc_clikeypub_der_256" ], + [ "./certs/client-ecc-cert.der", "cliecc_cert_der_256" ], + [ "./certs/ecc-key.der", "ecc_key_der_256" ], + [ "./certs/ecc-keyPub.der", "ecc_key_pub_der_256" ], + [ "./certs/statickeys/ecc-secp256r1.der", "ecc_secp_r1_statickey_der_256" ], + [ "./certs/server-ecc-comp.der", "serv_ecc_comp_der_256" ], + [ "./certs/server-ecc-rsa.der", "serv_ecc_rsa_der_256" ], + [ "./certs/server-ecc.der", "serv_ecc_der_256" ], + [ "./certs/ca-ecc-key.der", "ca_ecc_key_der_256" ], + [ "./certs/ca-ecc-cert.der", "ca_ecc_cert_der_256" ], + [ "./certs/ca-ecc384-key.der", "ca_ecc_key_der_384" ], + [ "./certs/ca-ecc384-cert.der", "ca_ecc_cert_der_384" ] ); @@ -44,6 +45,14 @@ my @fileList_ed = ( [ "./certs/ed25519/client-ed25519-key.der", "client_ed25519_key" ] ); +# x25519 keys and certs +# Used with USE_CERT_BUFFERS_25519 define. +my @fileList_x = ( + [ "./certs/statickeys/x25519.der", "x25519_statickey_der" ], + [ "./certs/statickeys/x25519-pub.der", "x25519_pub_statickey_der" ] + ); + + # 1024-bit certs/keys to be converted # Used with USE_CERT_BUFFERS_1024 define. @@ -68,6 +77,8 @@ my @fileList_2048 = ( [ "./certs/client-cert.der", "client_cert_der_2048" ], [ "./certs/dh2048.der", "dh_key_der_2048" ], [ "./certs/dh-pubkey-2048.der", "dh_pub_key_der_2048" ], + [ "./certs/statickeys/dh-ffdhe2048.der", "dh_ffdhe_statickey_der_2048" ], + [ "./certs/statickeys/dh-ffdhe2048-pub.der", "dh_ffdhe_pub_statickey_der_2048" ], [ "./certs/dsa-pubkey-2048.der", "dsa_pub_key_der_2048" ], [ "./certs/dsa2048.der", "dsa_key_der_2048" ], [ "./certs/rsa2048.der", "rsa_key_der_2048" ], @@ -129,6 +140,7 @@ my @fileList_sphincs = ( my $num_ecc = @fileList_ecc; my $num_ed = @fileList_ed; +my $num_x = @fileList_x; my $num_1024 = @fileList_1024; my $num_2048 = @fileList_2048; my $num_3072 = @fileList_3072; @@ -358,6 +370,24 @@ for (my $i = 0; $i < $num_ed; $i++) { } print OUT_FILE "#endif /* HAVE_ED25519 */\n\n"; + +# convert and print CURVE25519 cert/keys +print OUT_FILE "#if defined(USE_CERT_BUFFERS_25519)\n\n"; +for (my $i = 0; $i < $num_x; $i++) { + + my $fname = $fileList_x[$i][0]; + my $sname = $fileList_x[$i][1]; + + print OUT_FILE "/* $fname, CURVE25519 */\n"; + print OUT_FILE "static const unsigned char $sname\[] =\n"; + print OUT_FILE "{\n"; + file_to_hex($fname); + print OUT_FILE "};\n"; + print OUT_FILE "static const int sizeof_$sname = sizeof($sname);\n\n"; +} +print OUT_FILE "#endif /* USE_CERT_BUFFERS_25519 */\n\n"; + + print OUT_FILE "#endif /* WOLFSSL_CERTS_TEST_H */\n\n"; # close certs_test.h file diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index bcdf69e02..ba235b09f 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -13763,8 +13763,10 @@ WOLFSSL_TEST_SUBROUTINE int memory_test(void) #if !defined(NO_ASN) && !defined(NO_DH) #if defined(WOLFSSL_DH_EXTRA) && (!defined(HAVE_FIPS) || \ (defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION > 2))) - static const char* dhKeyFile = CERT_ROOT "statickeys/dh-ffdhe2048.der"; - static const char* dhKeyPubFile = CERT_ROOT "statickeys/dh-ffdhe2048-pub.der"; + #if !defined(USE_CERT_BUFFERS_2048) + static const char* dhKeyFile = CERT_ROOT "statickeys/dh-ffdhe2048.der"; + static const char* dhKeyPubFile = CERT_ROOT "statickeys/dh-ffdhe2048-pub.der"; + #endif #endif #endif #if !defined(USE_CERT_BUFFERS_1024) && !defined(USE_CERT_BUFFERS_2048) @@ -18479,6 +18481,11 @@ WOLFSSL_TEST_SUBROUTINE int dh_test(void) #else byte tmp2[DH_TEST_TMP_SIZE]; #endif + + #if defined(USE_CERT_BUFFERS_2048) + XMEMCPY(tmp, dh_ffdhe_statickey_der_2048, sizeof_dh_ffdhe_statickey_der_2048); + bytes = sizeof_dh_ffdhe_statickey_der_2048; + #else XFILE file = XFOPEN(dhKeyFile, "rb"); if (!file) ERROR_OUT(WC_TEST_RET_ENC_ERRNO, done); @@ -18486,7 +18493,7 @@ WOLFSSL_TEST_SUBROUTINE int dh_test(void) XFCLOSE(file); if (bytes == 0) ERROR_OUT(WC_TEST_RET_ENC_ERRNO, done); - + #endif #if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_NO_MALLOC) tmp2 = (byte*)XMALLOC(DH_TEST_TMP_SIZE, HEAP_HINT, DYNAMIC_TYPE_TMP_BUFFER); if (tmp2 == NULL) @@ -18510,6 +18517,10 @@ WOLFSSL_TEST_SUBROUTINE int dh_test(void) /* DH Public Key - Export / Import */ + #if defined(USE_CERT_BUFFERS_2048) + XMEMCPY(tmp, dh_ffdhe_pub_statickey_der_2048, sizeof_dh_ffdhe_pub_statickey_der_2048); + bytes = sizeof_dh_ffdhe_pub_statickey_der_2048; + #else file = XFOPEN(dhKeyPubFile, "rb"); if (!file) ERROR_OUT(WC_TEST_RET_ENC_ERRNO, done); @@ -18517,6 +18528,7 @@ WOLFSSL_TEST_SUBROUTINE int dh_test(void) XFCLOSE(file); if (bytes == 0) ERROR_OUT(WC_TEST_RET_ENC_ERRNO, done); + #endif /* for HAVE_WOLF_BIGINT prevent leak */ wc_FreeDhKey(key); diff --git a/wolfssl/certs_test.h b/wolfssl/certs_test.h index a7c23559c..aac97e721 100644 --- a/wolfssl/certs_test.h +++ b/wolfssl/certs_test.h @@ -1098,6 +1098,107 @@ static const unsigned char dh_pub_key_der_2048[] = }; static const int sizeof_dh_pub_key_der_2048 = sizeof(dh_pub_key_der_2048); +/* ./certs/statickeys/dh-ffdhe2048.der, 2048-bit */ +static const unsigned char dh_ffdhe_statickey_der_2048[] = +{ + 0x30, 0x82, 0x01, 0x3F, 0x02, 0x01, 0x00, 0x30, 0x82, 0x01, + 0x17, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, + 0x03, 0x01, 0x30, 0x82, 0x01, 0x08, 0x02, 0x82, 0x01, 0x01, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, + 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, 0xAF, 0xDC, 0x56, + 0x20, 0x27, 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83, 0xCE, + 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, + 0xFB, 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D, + 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, 0xF6, 0x81, 0xB2, + 0x02, 0xAE, 0xC4, 0x61, 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, + 0xFD, 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, + 0xD0, 0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, 0xB5, + 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F, 0x0C, + 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2, 0xA6, 0x89, 0xDA, 0xF3, + 0xEF, 0xE8, 0x72, 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, + 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, 0xBC, + 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, + 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA, 0xB7, 0x60, + 0xD7, 0xF4, 0x68, 0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, + 0xF4, 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, 0x0B, + 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, 0x9E, 0x02, 0xFC, + 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28, + 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, + 0xFF, 0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, + 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B, 0xB5, 0xFC, + 0xBC, 0x2E, 0xC2, 0x20, 0x05, 0xC5, 0x8E, 0xF1, 0x83, 0x7D, + 0x16, 0x83, 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, + 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61, 0x28, 0x5C, 0x97, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x01, 0x02, + 0x04, 0x1F, 0x02, 0x1D, 0x5C, 0xFB, 0x86, 0xF7, 0xFA, 0x51, + 0x02, 0x79, 0x71, 0x9E, 0xC0, 0x29, 0x98, 0x03, 0xCF, 0x3E, + 0x65, 0x46, 0xF6, 0x34, 0xB8, 0xB0, 0xC1, 0x55, 0x3A, 0xF7, + 0xC8, 0x43, 0xB8 +}; +static const int sizeof_dh_ffdhe_statickey_der_2048 = sizeof(dh_ffdhe_statickey_der_2048); + +/* ./certs/statickeys/dh-ffdhe2048-pub.der, 2048-bit */ +static const unsigned char dh_ffdhe_pub_statickey_der_2048[] = +{ + 0x30, 0x82, 0x02, 0x24, 0x30, 0x82, 0x01, 0x17, 0x06, 0x09, + 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x03, 0x01, 0x30, + 0x82, 0x01, 0x08, 0x02, 0x82, 0x01, 0x01, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xF8, 0x54, 0x58, + 0xA2, 0xBB, 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, + 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, + 0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93, + 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D, 0x2F, 0xE3, 0x63, + 0x63, 0x0C, 0x75, 0xD8, 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, + 0x61, 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, + 0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, 0x85, 0x63, + 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13, 0x5E, + 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, + 0x8B, 0x77, 0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, + 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, 0x30, 0xAC, + 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, + 0xB3, 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, + 0xE3, 0xFB, 0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, + 0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE, 0x56, + 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, 0x0B, 0x07, 0xA7, 0xC8, + 0xEE, 0x0A, 0x6D, 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, + 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, + 0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, + 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE, 0x3B, 0x1B, + 0x4C, 0x6F, 0xAD, 0x73, 0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, + 0x20, 0x05, 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, + 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, 0x88, 0x6B, + 0x42, 0x38, 0x61, 0x28, 0x5C, 0x97, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x01, 0x02, 0x03, 0x82, 0x01, + 0x05, 0x00, 0x02, 0x82, 0x01, 0x00, 0x4D, 0x3F, 0x4C, 0xE4, + 0x6C, 0x46, 0x71, 0xFF, 0x61, 0x02, 0x73, 0x0B, 0x65, 0x4F, + 0x46, 0xE7, 0x2E, 0x0F, 0x9E, 0x41, 0x04, 0x55, 0x41, 0x51, + 0x89, 0xA9, 0x5E, 0x84, 0xBC, 0x7A, 0x0A, 0x35, 0x34, 0x15, + 0xBE, 0xB1, 0xC3, 0x1E, 0xCD, 0xC7, 0x5A, 0x17, 0x98, 0x5F, + 0xFF, 0x96, 0x3D, 0x1B, 0x9B, 0xFA, 0xCC, 0x1F, 0x1E, 0xA7, + 0x22, 0x8B, 0x95, 0xEE, 0x2B, 0xD4, 0x74, 0xE2, 0x63, 0xE2, + 0xFD, 0x9C, 0xAA, 0x4F, 0xBE, 0x64, 0x69, 0x83, 0x31, 0x5E, + 0x90, 0x5C, 0x85, 0x5D, 0xB2, 0x99, 0xE0, 0x05, 0xB5, 0xF2, + 0xB6, 0x19, 0xCD, 0x06, 0xCD, 0xA8, 0xB3, 0x59, 0x8D, 0x87, + 0x84, 0x7F, 0x8F, 0x09, 0xEE, 0xBD, 0x61, 0x6F, 0xC5, 0xCD, + 0xB8, 0x9C, 0xA7, 0x15, 0x97, 0xD0, 0x44, 0x2E, 0x2D, 0x2E, + 0x32, 0x20, 0xC5, 0x3B, 0xDF, 0x50, 0x6F, 0x8D, 0x17, 0xB8, + 0x84, 0xA3, 0x67, 0x24, 0x7E, 0xA3, 0xEC, 0x8C, 0x08, 0x78, + 0x6C, 0x25, 0x88, 0x02, 0xD3, 0xA0, 0x68, 0xCE, 0x1A, 0x25, + 0x46, 0x2E, 0x9B, 0x4C, 0x82, 0xF4, 0xEB, 0xB3, 0xC9, 0x1D, + 0x17, 0x0C, 0x92, 0x94, 0x54, 0x0F, 0xB5, 0xDF, 0x3F, 0x71, + 0x45, 0x33, 0x97, 0x4D, 0x87, 0x1A, 0x4B, 0x40, 0x0A, 0x71, + 0xB4, 0x19, 0xBE, 0x33, 0xBD, 0xCF, 0xF3, 0x15, 0x63, 0x06, + 0x37, 0x5C, 0xA1, 0x9D, 0xC0, 0xE7, 0xA7, 0x8B, 0xD3, 0xA2, + 0x6B, 0x3F, 0xF1, 0x42, 0xC8, 0x36, 0x6B, 0x0A, 0x43, 0x8B, + 0xE9, 0xD0, 0x8C, 0xCD, 0x0F, 0x31, 0xCD, 0x22, 0xE7, 0x39, + 0xC8, 0x8D, 0xEB, 0x5D, 0x91, 0x8B, 0x06, 0x6E, 0x1F, 0x07, + 0xDB, 0xAB, 0x2B, 0x4F, 0x85, 0xF8, 0xBB, 0x55, 0xE3, 0xBD, + 0x70, 0x51, 0x5C, 0x73, 0x66, 0x5D, 0xD1, 0xB6, 0xF8, 0x44, + 0x10, 0xE0, 0xF2, 0x09, 0x1C, 0x6D, 0x02, 0x5D, 0xFC, 0x7A, + 0x08, 0x82 +}; +static const int sizeof_dh_ffdhe_pub_statickey_der_2048 = sizeof(dh_ffdhe_pub_statickey_der_2048); + /* ./certs/dsa-pubkey-2048.der, 2048-bit */ static const unsigned char dsa_pub_key_der_2048[] = { @@ -6065,6 +6166,25 @@ static const unsigned char ecc_key_pub_der_256[] = }; static const int sizeof_ecc_key_pub_der_256 = sizeof(ecc_key_pub_der_256); +/* ./certs/statickeys/ecc-secp256r1.der, ECC */ +static const unsigned char ecc_secp_r1_statickey_der_256[] = +{ + 0x30, 0x77, 0x02, 0x01, 0x01, 0x04, 0x20, 0xD3, 0x6B, 0xC6, + 0x68, 0x76, 0xDE, 0xD8, 0x97, 0x95, 0xF6, 0xD9, 0x8E, 0x2F, + 0x41, 0x73, 0x53, 0xF8, 0x03, 0x57, 0xED, 0x90, 0x80, 0x19, + 0xEB, 0xAA, 0x4A, 0x91, 0x8A, 0x8F, 0x31, 0x63, 0x45, 0xA0, + 0x0A, 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, + 0x07, 0xA1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x58, 0xA0, 0x80, + 0x7C, 0x51, 0xEC, 0xDD, 0x41, 0x5F, 0x93, 0xA8, 0x7A, 0x60, + 0x47, 0x47, 0xE9, 0xCF, 0x5A, 0x40, 0xE4, 0xDD, 0x37, 0xEC, + 0xCA, 0xA7, 0x10, 0x1C, 0x43, 0xDA, 0xE8, 0x73, 0x8C, 0x28, + 0xF5, 0xC9, 0xEC, 0x1A, 0x33, 0x0B, 0x26, 0x2E, 0x97, 0x80, + 0x2E, 0xE0, 0xB8, 0x01, 0x91, 0x16, 0xB4, 0xCC, 0x02, 0x18, + 0xB5, 0x1D, 0xCC, 0xBA, 0x3C, 0xED, 0x04, 0xC9, 0xA8, 0x92, + 0x37 +}; +static const int sizeof_ecc_secp_r1_statickey_der_256 = sizeof(ecc_secp_r1_statickey_der_256); + /* ./certs/server-ecc-comp.der, ECC */ static const unsigned char serv_ecc_comp_der_256[] = { @@ -6871,5 +6991,31 @@ static const int sizeof_client_ed25519_key = sizeof(client_ed25519_key); #endif /* HAVE_ED25519 */ +#if defined(USE_CERT_BUFFERS_25519) + +/* ./certs/statickeys/x25519.der, CURVE25519 */ +static const unsigned char x25519_statickey_der[] = +{ + 0x30, 0x2E, 0x02, 0x01, 0x00, 0x30, 0x05, 0x06, 0x03, 0x2B, + 0x65, 0x6E, 0x04, 0x22, 0x04, 0x20, 0x78, 0x8E, 0x31, 0x5C, + 0x33, 0xA9, 0x19, 0xC0, 0x5E, 0x36, 0x70, 0x1B, 0xA4, 0xE8, + 0xEF, 0xC1, 0x89, 0x8C, 0xB3, 0x15, 0xC6, 0x79, 0xD3, 0xAC, + 0x22, 0x00, 0xAE, 0xFA, 0xB3, 0xB7, 0x0F, 0x78 +}; +static const int sizeof_x25519_statickey_der = sizeof(x25519_statickey_der); + +/* ./certs/statickeys/x25519-pub.der, CURVE25519 */ +static const unsigned char x25519_pub_statickey_der[] = +{ + 0x30, 0x2A, 0x30, 0x05, 0x06, 0x03, 0x2B, 0x65, 0x6E, 0x03, + 0x21, 0x00, 0x09, 0xBC, 0x8C, 0xC7, 0x45, 0x0D, 0xC1, 0xC2, + 0x02, 0x57, 0x9A, 0x68, 0x3A, 0xFD, 0x7A, 0xA8, 0xA5, 0x2F, + 0xF0, 0x99, 0x39, 0x98, 0xEA, 0x26, 0xA2, 0x5B, 0x38, 0xFD, + 0x96, 0xDB, 0x2A, 0x26 +}; +static const int sizeof_x25519_pub_statickey_der = sizeof(x25519_pub_statickey_der); + +#endif /* USE_CERT_BUFFERS_25519 */ + #endif /* WOLFSSL_CERTS_TEST_H */