5 use Test::More tests => 13;
9 Net::SSLeay::randomize();
10 Net::SSLeay::load_error_strings();
11 Net::SSLeay::add_ssl_algorithms();
13 my $key_pem = File::Spec->catfile('t', 'data', 'key.pem.e');
14 my $key_password = 'secret';
20 my ($rwflag, $userdata) = @_;
24 is( $$userdata, $key_password, 'recieved userdata properly' );
29 my ($rwflag, $userdata) = @_;
33 is( $$userdata, $key_password, 'recieved userdata properly' );
38 my ($rwflag, $userdata) = @_;
42 is( $userdata, undef, 'recieved no userdata' );
46 my $ctx = Net::SSLeay::CTX_new();
49 my $ctx_2 = Net::SSLeay::CTX_new();
52 my $ctx_3 = Net::SSLeay::CTX_new();
55 Net::SSLeay::CTX_set_default_passwd_cb($ctx, \&callback);
56 Net::SSLeay::CTX_set_default_passwd_cb_userdata($ctx, \$key_password);
58 Net::SSLeay::CTX_set_default_passwd_cb($ctx_2, \&callback2);
59 Net::SSLeay::CTX_set_default_passwd_cb_userdata($ctx_2, \$key_password);
61 Net::SSLeay::CTX_set_default_passwd_cb($ctx_3, \&callback3);
63 ok( Net::SSLeay::CTX_use_PrivateKey_file($ctx, $key_pem, &Net::SSLeay::FILETYPE_PEM),
64 'CTX_use_PrivateKey_file works with right passphrase and userdata' );
66 ok( Net::SSLeay::CTX_use_PrivateKey_file($ctx_2, $key_pem, &Net::SSLeay::FILETYPE_PEM),
67 'CTX_use_PrivateKey_file works with right passphrase and userdata' );
69 ok( Net::SSLeay::CTX_use_PrivateKey_file($ctx_3, $key_pem, &Net::SSLeay::FILETYPE_PEM),
70 'CTX_use_PrivateKey_file works with right passphrase and without userdata' );
75 'different cbs per ctx work' );
77 $key_password = \'incorrect';
79 ok( !Net::SSLeay::CTX_use_PrivateKey_file($ctx, $key_pem, &Net::SSLeay::FILETYPE_PEM),
80 'CTX_use_PrivateKey_file doesn\'t work with wrong passphrase' );
82 is($cb_1_calls, 2, 'callback called 2 times');