From 87a7e0f1c303d1f9b0dbc6c30945d32fbc6ec0b4 Mon Sep 17 00:00:00 2001 From: Andrew Brampton Date: Tue, 7 Oct 2014 20:41:21 -0700 Subject: [PATCH] Add SSL_get_cipher_name(...) --- conn.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/conn.go b/conn.go index 61c0203..3dce8dd 100644 --- a/conn.go +++ b/conn.go @@ -28,6 +28,9 @@ package openssl // long SSL_set_tlsext_host_name_not_a_macro(SSL *ssl, const char *name) { // return SSL_set_tlsext_host_name(ssl, name); // } +// const char * SSL_get_cipher_name_not_a_macro(const SSL *ssl) { +// return SSL_get_cipher_name(ssl); +// } import "C" import ( @@ -144,6 +147,15 @@ func Server(conn net.Conn, ctx *Ctx) (*Conn, error) { return c, nil } +func (c *Conn) CurrentCipher() (string, error) { + p := C.SSL_get_cipher_name_not_a_macro(c.ssl) + if p == nil { + return "", errors.New("Session not established") + } + + return C.GoString(p), nil +} + func (c *Conn) fillInputBuffer() error { for { n, err := c.into_ssl.ReadFromOnce(c.conn)