--- /dev/null
+#!/usr/local/bin/perl
+# passwd-cb.pl
+#
+# Check using password callbacks to decrypt private keys
+# $Id: passwd-cb.pl,v 1.2 2002/06/05 18:25:47 sampo Exp $
+
+use Socket;
+use Net::SSLeay qw(die_now die_if_ssl_error);
+Net::SSLeay::randomize();
+Net::SSLeay::load_error_strings();
+Net::SSLeay::SSLeay_add_ssl_algorithms();
+
+my ($key_pem, $password) = @ARGV;
+
+print "Keyfile: `$key_pem', pw: `$password'\n";
+$calls = 0;
+
+sub callback {
+ $calls++;
+ print "Callback `$password'\n";
+ return $password;
+}
+
+my $ctx = Net::SSLeay::CTX_new() or die_now("Failed to create SSL_CTX $!");
+if (1) {
+Net::SSLeay::CTX_set_default_passwd_cb($ctx, \&callback);
+}
+Net::SSLeay::CTX_use_PrivateKey_file($ctx, $key_pem,
+ &Net::SSLeay::FILETYPE_PEM())
+ or print "CTX_use_PrivateKey_file failed\n";
+
+print "calls=$calls\n";
+
+#EOF