summaryrefslogtreecommitdiffstats
path: root/ssl
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2012-11-22 15:20:53 +0000
committerDr. Stephen Henson <steve@openssl.org>2012-11-22 15:20:53 +0000
commit20b431e3a94e57b916d7e1325217c3a2a6a186a0 (patch)
treea123d8a3ec30025a4b97edabdb86eb065fbcc59e /ssl
parente83aefb3a0c645c77849f889bc166935b2cc935c (diff)
Add support for printing out and retrieving EC point formats extension.
Diffstat (limited to 'ssl')
-rw-r--r--ssl/s3_lib.c13
-rw-r--r--ssl/ssl.h4
2 files changed, 17 insertions, 0 deletions
diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c
index 6a4ba395c1..c6ecd8ff00 100644
--- a/ssl/s3_lib.c
+++ b/ssl/s3_lib.c
@@ -3530,6 +3530,19 @@ long ssl3_ctrl(SSL *s, int cmd, long larg, void *parg)
return 0;
}
+ case SSL_CTRL_GET_EC_POINT_FORMATS:
+ if (!s->server)
+ return 0;
+ else
+ {
+ SSL_SESSION *sess = s->session;
+ const unsigned char **pformat = parg;
+ if (!sess || !sess->tlsext_ecpointformatlist)
+ return 0;
+ *pformat = sess->tlsext_ecpointformatlist;
+ return (int)sess->tlsext_ecpointformatlist_length;
+ }
+
default:
break;
}
diff --git a/ssl/ssl.h b/ssl/ssl.h
index 58086250e2..3c9ba9c024 100644
--- a/ssl/ssl.h
+++ b/ssl/ssl.h
@@ -1720,6 +1720,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
#define SSL_CTRL_GET_PEER_SIGNATURE_NID 108
#define SSL_CTRL_GET_SERVER_TMP_KEY 109
#define SSL_CTRL_GET_RAW_CIPHERLIST 110
+#define SSL_CTRL_GET_EC_POINT_FORMATS 111
#define DTLSv1_get_timeout(ssl, arg) \
SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)arg)
@@ -1853,6 +1854,9 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
#define SSL_get0_raw_cipherlist(s, plst) \
SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,plst)
+#define SSL_get0_ec_point_formats(s, plst) \
+ SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,plst)
+
#ifndef OPENSSL_NO_BIO
BIO_METHOD *BIO_f_ssl(void);
BIO *BIO_new_ssl(SSL_CTX *ctx,int client);