Fri, 08 Oct 2010 21:12:48 +0100
Add :getpeerfinished() connection method to get peer's TLS Finished message
src/ssl.c | file | annotate | diff | comparison | revisions |
--- a/src/ssl.c Fri Oct 08 21:12:22 2010 +0100 +++ b/src/ssl.c Fri Oct 08 21:12:48 2010 +0100 @@ -427,6 +427,25 @@ return 0; } } + +static int meth_getpeerfinished(lua_State *L) +{ + p_ssl ssl = (p_ssl)luaL_checkudata(L, 1, "SSL:Connection"); + SSL *conn = ssl->ssl; + char *buffer = NULL; + size_t len = 0; + if ((len = SSL_get_peer_finished(conn, NULL, 0)) != 0) { + buffer = malloc(len); + if (buffer == NULL) return 0; + len = SSL_get_peer_finished(conn, buffer, len); + lua_pushlstring(L, buffer, len); + free(buffer); + return 1; + } else { + return 0; + } +} + /*---------------------------------------------------------------------------*/ @@ -445,6 +464,7 @@ {"compression", meth_compression}, {"getpeercertificate",meth_getpeercertificate}, {"getfinished", meth_getfinished}, + {"getpeerfinished", meth_getpeerfinished}, {NULL, NULL} };