src/ssl.c

changeset 30
36ed99e1ce1e
parent 21
c3755cb3d246
child 31
87625285de20
equal deleted inserted replaced
29:a812bd8f1e6c 30:36ed99e1ce1e
374 return 1; 374 return 1;
375 } 375 }
376 } 376 }
377 377
378 /** 378 /**
379 * Return the validation state of the peer chain
380 */
381 static int meth_getpeerchainvalid(lua_State *L)
382 {
383 p_ssl ssl = (p_ssl)luaL_checkudata(L, 1, "SSL:Connection");
384 long result = SSL_get_verify_result(ssl->ssl);
385
386 if (result == X509_V_OK) {
387 lua_pushboolean(L, 1);
388 return 1;
389 }
390
391 lua_pushboolean(L, 0);
392 lua_pushstring(L, X509_verify_cert_error_string(result));
393 return 2;
394 }
395
396 /**
379 * Return the peer certificate. 397 * Return the peer certificate.
380 */ 398 */
381 static int meth_getpeercertificate(lua_State *L) 399 static int meth_getpeercertificate(lua_State *L)
382 { 400 {
383 X509 *peer; 401 X509 *peer;
446 {"send", meth_send}, 464 {"send", meth_send},
447 {"settimeout", meth_settimeout}, 465 {"settimeout", meth_settimeout},
448 {"want", meth_want}, 466 {"want", meth_want},
449 {"compression", meth_compression}, 467 {"compression", meth_compression},
450 {"getpeercertificate",meth_getpeercertificate}, 468 {"getpeercertificate",meth_getpeercertificate},
469 {"getpeerchainvalid", meth_getpeerchainvalid},
451 {"getfinished", meth_getfinished}, 470 {"getfinished", meth_getfinished},
452 {"getpeerfinished", meth_getpeerfinished}, 471 {"getpeerfinished", meth_getpeerfinished},
453 {NULL, NULL} 472 {NULL, NULL}
454 }; 473 };
455 474

mercurial