diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2012-12-26 18:13:49 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2012-12-26 18:13:49 +0000 |
commit | 78b5d89ddfdc66b5bf5919b7858f11d2e491efbf (patch) | |
tree | 47ad5f10067f62f4c9dcfc04ecfad8d758cc2b20 /apps/s_cb.c | |
parent | b79df62eff0f48399a6e8d0cf4509992524bb0bd (diff) |
Add support for printing out and retrieving EC point formats extension.
(backport from HEAD)
Diffstat (limited to 'apps/s_cb.c')
-rw-r--r-- | apps/s_cb.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/apps/s_cb.c b/apps/s_cb.c index fc40f391e3..2ac7656f06 100644 --- a/apps/s_cb.c +++ b/apps/s_cb.c @@ -418,6 +418,45 @@ int ssl_print_sigalgs(BIO *out, SSL *s) BIO_printf(out, "Peer signing digest: %s\n", OBJ_nid2sn(mdnid)); return 1; } + +int ssl_print_point_formats(BIO *out, SSL *s) + { + int i, nformats; + const char *pformats; + nformats = SSL_get0_ec_point_formats(s, &pformats); + if (nformats <= 0) + return 1; + BIO_puts(out, "Supported Elliptic Curve Point Formats: "); + for (i = 0; i < nformats; i++, pformats++) + { + if (i) + BIO_puts(out, ":"); + switch(*pformats) + { + case TLSEXT_ECPOINTFORMAT_uncompressed: + BIO_puts(out, "uncompressed"); + break; + + case TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime: + BIO_puts(out, "ansiX962_compressed_prime"); + break; + + case TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2: + BIO_puts(out, "ansiX962_compressed_char2"); + break; + + default: + BIO_printf(out, "unknown(%d)", (int)*pformats); + break; + + } + } + if (nformats <= 0) + BIO_puts(out, "NONE"); + BIO_puts(out, "\n"); + return 1; + } + int ssl_print_curves(BIO *out, SSL *s) { |