Looking at Crypt-SSLeay-0.57 - and the rather trivial script below works:

-       fine and dandy when there is no PKCS12 environment variable
        set for a client side cert:

        perl below.pl
        .......

        while true; ps aux | grep perl | grep below.pl; sleep 1; done

        shows a steady size.

HOWEVER:

-       Leaks a few 100kbs-1Mbyte/second when one is set.

        export HTTPS_PKCS12_FILE=~/client.p12
        export HTTPS_PKCS12_PASSWORD=supersecret
        perl below.pl
        .......

        while true; ps aux | grep perl | grep below.pl; sleep 1; done

        shows a very steady growth.

Simplest script I could think off is shown below. Any one any ideas -
almost looks as if the .49 patch:

+ Added patch from Pavel Hlavnicka for freeing memory leaks
  from SSL_CTX_use_pkcs12_file() whose functionality is triggered
  by the $ENV{HTTPS_PKCS12_*} settings

was somehow reverted. Suggestions appreciated ! Let me know if you need
a test server/client-cert to test against.

Thanks,

Dw

- sample script

use LWP::UserAgent;
$|++;
my $ua  = LWP::UserAgent->new(keep_alive => 10);
while(1) {
        $i++;
        my $req = HTTP::Request->new('GET', 'https://xxxx.com');
        my $res = $ua->request($req);
        print ".";
};


- command sequence to get yourself a server/client
  cert and config for apache:

  # self signed server cert
  openssl req -new -x509 -nodes \
                -set_serial 1 \
        -out server.pem -keyout server.key \
        -subj /CN=server

  # cert of the root CA issueing client certs.
  #
  openssl req -new -x509 -nodes \
        -set_serial 1 \
        -out client-ca.pem -keyout client-ca.key \
        -subj /CN=client-ca

   # client cert request
   #
   openssl req -new -nodes -set_serial 3 \
        -out client.req -keyout client.key \
        -subj /CN=theclient

   # root signs it
   #
   openssl x509 -req -in client.req \
        -signkey client-ca.key  \
        -out client.pem

   # package ss PKCS12 for Crypt::SSLeay
   openssl pkcs12 -export -out client.p12 \
        -in client.pem -inkey client.key \
        -passout pass:supersecret


   # config for apache
   httpd.conf
        SSLEngine on
        SSLProtocol all -SSLv2
        SSLCertificateFile server.pem
        SSLCertificateKeyFile server.key

        SSLCACertificateFile ca-client.pem
        SSLVerifyClient require
        SSLVerifyDepth 2


http://www.bbc.co.uk/
This e-mail (and any attachments) is confidential and may contain personal 
views which are not the views of the BBC unless specifically stated.
If you have received it in error, please delete it from your system.
Do not use, copy or disclose the information in any way nor act in reliance on 
it and notify the sender immediately.
Please note that the BBC monitors e-mails sent or received.
Further communication will signify your consent to this.
                                        

Reply via email to