Browse Source

Updated Key gen to convert the keys located in /certs/statickeys to be used in buffers

dell5060 10 months ago
parent
commit
7926ceb120
3 changed files with 203 additions and 15 deletions
  1. 42 12
      gencertbuf.pl
  2. 15 3
      wolfcrypt/test/test.c
  3. 146 0
      wolfssl/certs_test.h

+ 42 - 12
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

+ 15 - 3
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);

+ 146 - 0
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 */