如何在 Perl 中使用数字签名对 pdf 文件进行签名?我可以提取 pdf 的内容并通过
生成签名字符串# $content -> 待签名的pdf内容
我的 $private_key Crypt::OpenSSL::RSA->new_private_key($key_string);
$private_key->use_md5_hash();
我的 $signature = $private_key->sign($content);
因此,$signature可以转换为十六进制格式,但我不知道如何将其添加到PDF文件中。我知道十六进制形式的签名应该放在 /Contents 字段中,签名文本的范围由 /ByteRange 数组给出。
有没有专门用于此目的的模块?或者你能给我一些如何做的建议吗?谢谢
您可能会发现这个脚本很有趣... http://mschuette.name/files/pdfsign.pl 它使用 PDF::API2 和 Crypt::OpenSSL 来发挥其魔力...它可能可以作为创造属于你自己的东西。
use Crypt::OpenSSL::RSA;
use File::Slurp;
my $keystring = read_file('private_key.pem');
my $private_key = Crypt::OpenSSL::RSA->new_private_key($keystring);
$private_key->use_md5_hash();
my $signature = $private_key->sign($plaintext);
我可以用获得的数据签署PDF
my $webid = Web::ID->new(certificate => $ENV{SSL_CLIENT_CERT});
$ENV{SSL_CLIENT_CERT}
$ENV{SSL_CLIENT_CERT_CHAIN_0}
$ENV{SSL_CLIENT_CERT_CHAIN_1}