Implement the Supported Point Formats Extension for ECC ciphersuites
Submitted by: Douglas Stebila
This commit is contained in:
@@ -203,6 +203,10 @@ SSL_SESSION *SSL_SESSION_new(void)
|
||||
ss->compress_meth=0;
|
||||
#ifndef OPENSSL_NO_TLSEXT
|
||||
ss->tlsext_hostname = NULL;
|
||||
#ifndef OPENSSL_NO_EC
|
||||
ss->tlsext_ecpointformatlist_length = 0;
|
||||
ss->tlsext_ecpointformatlist = NULL;
|
||||
#endif
|
||||
#endif
|
||||
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data);
|
||||
#ifndef OPENSSL_NO_PSK
|
||||
@@ -352,6 +356,19 @@ int ssl_get_new_session(SSL *s, int session)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#ifndef OPENSSL_NO_EC
|
||||
if (s->tlsext_ecpointformatlist)
|
||||
{
|
||||
if ((ss->tlsext_ecpointformatlist = OPENSSL_malloc(s->tlsext_ecpointformatlist_length)) == NULL)
|
||||
{
|
||||
SSLerr(SSL_F_SSL_GET_NEW_SESSION, ERR_R_MALLOC_FAILURE);
|
||||
SSL_SESSION_free(ss);
|
||||
return 0;
|
||||
}
|
||||
ss->tlsext_ecpointformatlist_length = s->tlsext_ecpointformatlist_length;
|
||||
memcpy(ss->tlsext_ecpointformatlist, s->tlsext_ecpointformatlist, s->tlsext_ecpointformatlist_length);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
else
|
||||
@@ -644,6 +661,10 @@ void SSL_SESSION_free(SSL_SESSION *ss)
|
||||
if (ss->ciphers != NULL) sk_SSL_CIPHER_free(ss->ciphers);
|
||||
#ifndef OPENSSL_NO_TLSEXT
|
||||
if (ss->tlsext_hostname != NULL) OPENSSL_free(ss->tlsext_hostname);
|
||||
#ifndef OPENSSL_NO_EC
|
||||
ss->tlsext_ecpointformatlist_length = 0;
|
||||
if (ss->tlsext_ecpointformatlist != NULL) OPENSSL_free(ss->tlsext_ecpointformatlist);
|
||||
#endif /* OPENSSL_NO_EC */
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_PSK
|
||||
if (ss->psk_identity_hint != NULL)
|
||||
|
Reference in New Issue
Block a user