diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2012-04-06 20:12:35 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2012-04-06 20:12:35 +0000 |
commit | 6b870763ac55ce1c748e68293e8169aa61cb4eb2 (patch) | |
tree | 01ba7d2d5af263ce2f80eb320a83bb8c0b9d8b4d /apps/s_cb.c | |
parent | 5505818199557d4e591dd73637d020732b44ca02 (diff) |
Initial revision of ECC extension handling.
Tidy some code up.
Don't allocate a structure to handle ECC extensions when it is used for
default values.
Make supported curves configurable.
Add ctrls to retrieve shared curves: not fully integrated with rest of
ECC code yet.
(backport from HEAD)
Diffstat (limited to 'apps/s_cb.c')
-rw-r--r-- | apps/s_cb.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/apps/s_cb.c b/apps/s_cb.c index eab0a08038..141c222895 100644 --- a/apps/s_cb.c +++ b/apps/s_cb.c @@ -316,18 +316,17 @@ int ssl_print_sigalgs(BIO *out, SSL *s) int ssl_print_curves(BIO *out, SSL *s) { - int i, ncurves, *curves; - ncurves = SSL_get1_curvelist(s, NULL); + int i, ncurves, *curves, nid; + const char *cname; + ncurves = SSL_get1_curves(s, NULL); if (ncurves <= 0) return 1; curves = OPENSSL_malloc(ncurves * sizeof(int)); - SSL_get1_curvelist(s, curves); + SSL_get1_curves(s, curves); BIO_puts(out, "Supported Elliptic Curves: "); for (i = 0; i < ncurves; i++) { - int nid; - const char *cname; if (i) BIO_puts(out, ":"); nid = curves[i]; @@ -343,8 +342,20 @@ int ssl_print_curves(BIO *out, SSL *s) BIO_printf(out, "%s", cname); } } - BIO_puts(out, "\n"); + BIO_puts(out, "\nShared Elliptic curves: "); OPENSSL_free(curves); + ncurves = SSL_get_shared_curve(s, -1); + for (i = 0; i < ncurves; i++) + { + if (i) + BIO_puts(out, ":"); + nid = SSL_get_shared_curve(s, i); + cname = EC_curve_nid2nist(nid); + if (!cname) + cname = OBJ_nid2sn(nid); + BIO_printf(out, "%s", cname); + } + BIO_puts(out, "\n"); return 1; } |