Fri, 08 Oct 2010 21:12:22 +0100
Add :getfinished() method to get local TLS Finished message
src/ssl.c | file | annotate | diff | comparison | revisions |
--- a/src/ssl.c Fri Oct 08 21:11:25 2010 +0100 +++ b/src/ssl.c Fri Oct 08 21:12:22 2010 +0100 @@ -409,6 +409,24 @@ return 1; } } + +static int meth_getfinished(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_finished(conn, NULL, 0)) != 0) { + buffer = malloc(len); + if (buffer == NULL) return 0; + len = SSL_get_finished(conn, buffer, len); + lua_pushlstring(L, buffer, len); + free(buffer); + return 1; + } else { + return 0; + } +} /*---------------------------------------------------------------------------*/ @@ -426,6 +444,7 @@ {"want", meth_want}, {"compression", meth_compression}, {"getpeercertificate",meth_getpeercertificate}, + {"getfinished", meth_getfinished}, {NULL, NULL} };