use Crypt::SMIME; open(PKEY, "signer_key.pem") || die "open failed: $!"; open(CERT, "signer.pem") || die "open failed: $!"; my $plain = <<'EOF'; From: alice@example.org To: bob@example.com Subject: Crypt::SMIME test This is a test mail. Please ignore... EOF ($privkey, $cert); # = (, ); { local $/=undef; $privkey = ; $cert = ; } my $smime = Crypt::SMIME->new(); $smime->setPrivateKey($privkey, $cert); # $smime->setPublicKey([$icacert]); # if need be. my $signed = $smime->sign($plain); print $signed;