Common subdirectories: Net_SSLeay.pm-1.19.orig/Net-SSLeay-Handle-0.50 and Net_SSLeay.pm-1.19/Net-SSLeay-Handle-0.50 diff -u Net_SSLeay.pm-1.19.orig/SSLeay.pm Net_SSLeay.pm-1.19/SSLeay.pm --- Net_SSLeay.pm-1.19.orig/SSLeay.pm Sat Aug 17 06:57:54 2002 +++ Net_SSLeay.pm-1.19/SSLeay.pm Wed Aug 21 10:55:25 2002 @@ -27,6 +27,8 @@ # --mikem@open._com.au # 10.8.2002, Added SSL_peek patch to ssl_read_until from # Peter Behroozi --Sampo +# 21.8.2002, Added SESSION_get_master_key, SSL_get_client_random, SSL_get_server_random +# --mikem@open.com_.au # $Id: SSLeay.pm,v 1.17 2002/08/16 20:57:54 sampo Exp $ # # The distribution and use of this module are subject to the conditions @@ -393,6 +395,9 @@ RSA_generate_key RSA_free X509_free + SESSION_get_master_key + get_client_random + get_server_random ); sub AUTOLOAD { @@ -922,6 +927,13 @@ $count = Net::SSLeay::BIO_pending($bio); $count = Net::SSLeay::BIO_wpending ($bio); +=head2 Low level API +Some very low level API functions are available: + $client_random = &Net::SSLeay::get_client_random($ssl); + $server_random = &Net::SSLeay::get_server_random($ssl); + $session = &Net::SSLeay::get_session($ssl); + $master_key = &Net::SSLeay::SESSION_get_master_key($session); + =head1 EXAMPLES One very good example is to look at the implementation of sslcat() in the diff -u Net_SSLeay.pm-1.19.orig/SSLeay.xs Net_SSLeay.pm-1.19/SSLeay.xs --- Net_SSLeay.pm-1.19.orig/SSLeay.xs Sat Aug 17 06:58:17 2002 +++ Net_SSLeay.pm-1.19/SSLeay.xs Wed Aug 21 10:59:05 2002 @@ -30,6 +30,8 @@ * --mikem@open.com_.au * 10.8.2002, Added SSL_peek patch to ssl_read_until from * Peter Behroozi --Sampo + * 21.8.2002, Added SESSION_get_master_key, SSL_get_client_random, SSL_get_server_random + * --mikem@open.com_.au * * $Id: SSLeay.xs,v 1.10 2002/08/16 20:58:17 sampo Exp $ * @@ -3233,4 +3235,26 @@ OUTPUT: RETVAL +void +SSL_SESSION_get_master_key(s) + SSL_SESSION * s + CODE: + ST(0) = sv_newmortal(); /* Undefined to start with */ + sv_setpvn(ST(0), s->master_key, s->master_key_length); + +void +SSL_get_client_random(s) + SSL * s + CODE: + ST(0) = sv_newmortal(); /* Undefined to start with */ + sv_setpvn(ST(0), s->s3->client_random, SSL3_RANDOM_SIZE); + +void +SSL_get_server_random(s) + SSL * s + CODE: + ST(0) = sv_newmortal(); /* Undefined to start with */ + sv_setpvn(ST(0), s->s3->server_random, SSL3_RANDOM_SIZE); + + #define REM_EOF "/* EOF - SSLeay.xs */" Common subdirectories: Net_SSLeay.pm-1.19.orig/examples and Net_SSLeay.pm-1.19/examples