在perl中将签名添加到PDF中

问题描述 投票:0回答:3

如何在 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 数组给出。

有没有专门用于此目的的模块?或者你能给我一些如何做的建议吗?谢谢

perl pdf digital-signature
3个回答
2
投票

您可能会发现这个脚本很有趣... http://mschuette.name/files/pdfsign.pl 它使用 PDF::API2 和 Crypt::OpenSSL 来发挥其魔力...它可能可以作为创造属于你自己的东西。


0
投票
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);

0
投票

我可以用获得的数据签署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}
© www.soinside.com 2019 - 2024. All rights reserved.