Add index for ED25519
authorDr. Stephen Henson <steve@openssl.org>
Wed, 24 May 2017 20:54:03 +0000 (21:54 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Wed, 21 Jun 2017 13:11:01 +0000 (14:11 +0100)
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3585)

ssl/ssl_locl.h
ssl/statem/statem_lib.c
ssl/t1_lib.c

index 83c48058c49480d451535f6be0fce2ca4e1898fb..4607bc79049a44ac850f65f5d4f87997e48cbeb5 100644 (file)
 # define SSL_PKEY_GOST01         3
 # define SSL_PKEY_GOST12_256     4
 # define SSL_PKEY_GOST12_512     5
-# define SSL_PKEY_NUM            6
+# define SSL_PKEY_ED25519        6
+# define SSL_PKEY_NUM            7
 /*
  * Pseudo-constant. GOST cipher suites can use different certs for 1
  * SSL_CIPHER. So let's see which one we have in fact.
index 0a5d7b406707f9e8c594f4579fb7ee87ada6ff3c..e4c8c668af86f17ba0c7ff1cdbf20438e1dc134c 100644 (file)
@@ -1248,6 +1248,8 @@ int ssl_cert_type(const X509 *x, const EVP_PKEY *pk)
 #ifndef OPENSSL_NO_EC
     case EVP_PKEY_EC:
         return SSL_PKEY_ECC;
+    case NID_ED25519:
+        return SSL_PKEY_ED25519;
 #endif
 #ifndef OPENSSL_NO_GOST
     case NID_id_GostR3410_2001:
index 9112a0c4921c6638186c21dee7d4f16a11cad285..fc1c66462aad53b0082df91e8d612a061b1b4c88 100644 (file)
@@ -798,7 +798,8 @@ static const uint16_t tls_default_sigalg[] = {
     TLSEXT_SIGALG_ecdsa_sha1, /* SSL_PKEY_ECC */
     TLSEXT_SIGALG_gostr34102001_gostr3411, /* SSL_PKEY_GOST01 */
     TLSEXT_SIGALG_gostr34102012_256_gostr34112012_256, /* SSL_PKEY_GOST12_256 */
-    TLSEXT_SIGALG_gostr34102012_512_gostr34112012_512 /* SSL_PKEY_GOST12_512 */
+    TLSEXT_SIGALG_gostr34102012_512_gostr34112012_512, /* SSL_PKEY_GOST12_512 */
+    0 /* SSL_PKEY_ED25519 */
 };
 
 /* Lookup TLS signature algorithm */
@@ -1394,6 +1395,8 @@ static int tls12_get_pkey_idx(int sig_nid)
 #ifndef OPENSSL_NO_EC
     case EVP_PKEY_EC:
         return SSL_PKEY_ECC;
+    case NID_ED25519:
+        return SSL_PKEY_ED25519;
 #endif
 #ifndef OPENSSL_NO_GOST
     case NID_id_GostR3410_2001: