Server IP : 23.254.227.96 / Your IP : 216.73.216.46 Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64 User : viralblo ( 1001) PHP Version : 8.1.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/doc/perl-Mail-DKIM/ |
Upload File : |
#!/usr/bin/perl -I../../.. use strict; use warnings; use Getopt::Long; my $headers; GetOptions( "headers=s" => \$headers ) or die "Error: invalid argument(s)\n"; my $canon_method = $ARGV[0] or die "Error: no canonicalization method specified\n"; use Mail::DKIM::Canonicalization::nowsp; use Mail::DKIM::Canonicalization::relaxed; use Mail::DKIM::Canonicalization::simple; use Mail::DKIM::Signature; my $crlf = "\015\012"; # read in headers my @headers; my @header_names; while (<STDIN>) { # standardize line terminators chomp; $_ .= $crlf; last if ($_ eq $crlf); if (/^\s/ && @headers) { # continues last header $headers[@headers - 1] .= $_; } else { # starts a new header push @headers, $_; if (/^(\S[^:\s]*)\s*:/) { push @header_names, $1; } } } # determine value of h= tag unless (defined $headers) { $headers = join(":", @header_names); } # create a dummy signature my $signature = new Mail::DKIM::Signature( Algorithm => "rsa-sha1", Method => $canon_method, Domain => "example.org", Selector => "selector"); $signature->headerlist($headers); # create a canonicalization object my $canon_class = "Mail::DKIM::Canonicalization::$canon_method"; my $can = $canon_class->new( Signature => $signature, output_fh => *STDOUT); # repeat the headers foreach my $header (@headers) { $can->add_header($header); } $can->finish_header; # read the body while (<STDIN>) { chomp; $can->add_body("$_\015\012"); } $can->finish_body;