2012-10-17 13 views
5

Jak mogę podpisać plik PDF za pomocą podpisu cyfrowego w Perlu? Jestem w stanie wyodrębnić zawartość PDF i generować ciąg podpisu poprzezDodaj podpis do pliku PDF w perlu

# $ treści -> Zawartość pdf być podpisane

moja $ private_key Crypt :: OpenSSL :: RSA-> new_private_key ($ key_string);
$ private_key-> use_md5_hash();
my $ signature = $ private_key-> sign ($ content);

W konsekwencji, podpis $ można konwertować do formatu szesnastkowego, ale nie wiem jak dodać go do pliku PDF. Wiem, że podpis w formie szesnastkowej powinien być umieszczony w polu/Contents, a zakres podpisanego tekstu jest podany przez/ByteRange array.

Czy jest jakiś moduł do tego celu? Czy możesz mi doradzić, jak to zrobić? Dzięki

Odpowiedz

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); 
+1

Dzięki. To jest zasada tworzenia podpisu. Format PDF jest jednak wyjątkowy, ponieważ obejmuje obsługę sygnatur, które mają być osadzone w samym dokumencie. Pytanie nie brzmi "jak stworzyć podpis?", Ale "jak umieścić podpis w formacie PDF?". Jeśli nie ma modułu Perla, który go włącza (coś takiego jak iText dla Java), byłbym wdzięczny za kilka linków do opisu i objaśnienia tego procesu. W języku Java można to zrobić za pośrednictwem biblioteki iText. Ale muszę to zrobić w Perlu. Więc jeśli nie ma – user1753233

1

można znaleźć ten skrypt interesujący ... http://mschuette.name/files/pdfsign.pl używa PDF :: API2 i Crypt :: OpenSSL todo jego magię ... może to zapewne służyć jako podstawa do stworzenia czegoś własnego.