diff options
Diffstat (limited to 'net-ftp/bsdftpd-ssl/files/auth.sslftp')
-rw-r--r-- | net-ftp/bsdftpd-ssl/files/auth.sslftp | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/net-ftp/bsdftpd-ssl/files/auth.sslftp b/net-ftp/bsdftpd-ssl/files/auth.sslftp deleted file mode 100644 index 539140d..0000000 --- a/net-ftp/bsdftpd-ssl/files/auth.sslftp +++ /dev/null @@ -1,43 +0,0 @@ -#! /usr/bin/perl - -# Output must be at least 8 bytes - -sub return_error { - print STDOUT "200\r\n\r\n"; - exit; -} - -sub return_ok { - $user=@_[0]; - print STDOUT "100\r\n$user\r\n"; - exit; -} - -$/="\r\n"; -$user=<STDIN>;chomp($user); -$/="\n"; -$mode=0; -while (<>) { - if (($mode==0)&&($_ =~ /-----BEGIN CERTIFICATE-----/)) { $mode = 1; } - elsif (($mode==1)&&($_ =~ /-----END CERTIFICATE-----/)) { $mode = 2; } - if ($mode) { - $_ =~ /^(.*)[\n\r]+$/; - $cert.=$1; - } - if ($mode==2) { last; } -} - -#$cert=join "", @cert_lines; -$cert =~ m/-----BEGIN CERTIFICATE-----(.*)-----END CERTIFICATE-----/; -$client_cert = $1; - -open(ucf, "/opt/ssl/user_certs/$user.crt") or return_error(); -@cert_lines=<ucf>; -chomp(@cert_lines); -$cert=join "", @cert_lines; -close(ucf); -$cert =~ m/-----BEGIN CERTIFICATE-----(.*)-----END CERTIFICATE-----/; -$user_cert = $1; - -if (($user_cert cmp $client_cert) == 0) { return_ok($user); } -return_error(); |