File: extract-email-address.t

package info (click to toggle)
request-tracker5 5.0.3%2Bdfsg-3~deb12u3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 77,648 kB
  • sloc: javascript: 187,930; perl: 79,061; sh: 1,302; makefile: 471; python: 37; php: 15
file content (31 lines) | stat: -rw-r--r-- 833 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use strict;
use warnings;

use RT::Test::Crypt SMIME => 1, tests => undef;

sub extract_email_address
{
    my ($base) = @_;
    my $cert;
    {
        local $/;
        open(my $fh, "<t/data/smime/keys/$base.crt") or die ("Cannot open t/data/smime/keys/$base.crt: $!");
        $cert = <$fh>;
        close($fh);
    }
    if ($cert =~ /^-----BEGIN \s+ CERTIFICATE----- \s* $
    (.*?)
    ^-----END \s+ CERTIFICATE----- \s* $/smx) {
        $cert = MIME::Base64::decode_base64($1);
    }

    my $c = Crypt::X509->new(cert => $cert);
    return RT::Crypt::SMIME->ExtractSubjectEmailAddress($c);
}

foreach my $addr ('dianne@skoll.ca', 'root@example.com', 'sender@example.com', 'smime@example.com') {
    is (extract_email_address($addr), $addr, "$addr: Correct email address extracted from S/MIME certificate");
}


done_testing;