Generalizing curves to groups in preparation for TLS 1.3. The 'elliptic_curves' extension is being renamed to 'supported_groups' in the TLS 1.3 draft, and most of the curve-specific methods are generalized to groups/group IDs. Change-Id: Icd1a1cf7365c8a4a64ae601993dc4273802610fb Reviewed-on: https://boringssl-review.googlesource.com/7955 Reviewed-by: David Benjamin <davidben@google.com>
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c index 74c2d26..fd8c04c 100644 --- a/ssl/ssl_lib.c +++ b/ssl/ssl_lib.c
@@ -341,7 +341,7 @@ sk_X509_NAME_pop_free(ctx->client_CA, X509_NAME_free); sk_SRTP_PROTECTION_PROFILE_free(ctx->srtp_profiles); OPENSSL_free(ctx->psk_identity_hint); - OPENSSL_free(ctx->tlsext_ellipticcurvelist); + OPENSSL_free(ctx->supported_group_list); OPENSSL_free(ctx->alpn_client_proto_list); OPENSSL_free(ctx->ocsp_response); OPENSSL_free(ctx->signed_cert_timestamp_list); @@ -403,14 +403,14 @@ CRYPTO_refcount_inc(&ctx->references); ssl->initial_ctx = ctx; - if (ctx->tlsext_ellipticcurvelist) { - ssl->tlsext_ellipticcurvelist = - BUF_memdup(ctx->tlsext_ellipticcurvelist, - ctx->tlsext_ellipticcurvelist_length * 2); - if (!ssl->tlsext_ellipticcurvelist) { + if (ctx->supported_group_list) { + ssl->supported_group_list = + BUF_memdup(ctx->supported_group_list, + ctx->supported_group_list_len * 2); + if (!ssl->supported_group_list) { goto err; } - ssl->tlsext_ellipticcurvelist_length = ctx->tlsext_ellipticcurvelist_length; + ssl->supported_group_list_len = ctx->supported_group_list_len; } if (ssl->ctx->alpn_client_proto_list) { @@ -499,7 +499,7 @@ OPENSSL_free(ssl->tlsext_hostname); SSL_CTX_free(ssl->initial_ctx); - OPENSSL_free(ssl->tlsext_ellipticcurvelist); + OPENSSL_free(ssl->supported_group_list); OPENSSL_free(ssl->alpn_client_proto_list); EVP_PKEY_free(ssl->tlsext_channel_id_private); OPENSSL_free(ssl->psk_identity_hint); @@ -1705,7 +1705,7 @@ mask_a |= SSL_aRSA; } else if (ssl_private_key_type(ssl) == EVP_PKEY_EC) { /* An ECC certificate may be usable for ECDSA cipher suites depending on - * the key usage extension and on the client's curve preferences. */ + * the key usage extension and on the client's group preferences. */ X509 *x = ssl->cert->x509; /* This call populates extension flags (ex_flags). */ X509_check_purpose(x, -1, 0); @@ -1722,9 +1722,9 @@ mask_k |= SSL_kDHE; } - /* Check for a shared curve to consider ECDHE ciphers. */ + /* Check for a shared group to consider ECDHE ciphers. */ uint16_t unused; - if (tls1_get_shared_curve(ssl, &unused)) { + if (tls1_get_shared_group(ssl, &unused)) { mask_k |= SSL_kECDHE; }