2015-10-19 16 views
5

Dzięki interfejsowi API WebCrypto, który jest rozwijany i obsługiwany przez Chrome i Firefox, chciałbym go użyć do cyfrowego podpisywania dokumentu PDF. Nie ma zbyt wiele literatury, ale znalazłem kilka przykładów [1] i bibliotekę o nazwie PKI.js [2]. W przykładach opisany jest proces podpisywania, ale ostatecznie zwracany jest podpis. Spodziewam się, że mój plik PDF Base64 zostanie ponownie zwrócony w podpisanym łańcuchu Base64, ale niestety tak nie jest. PKI.js również, według mojej wiedzy, nie zapewnia sposobu na podpisanie mojego pliku Base64 PDF.Zarejestruj PDF z prostym JavaScriptem

Czy istnieje sposób podpisywania pliku PDF z JavaScriptem i interfejsem API WebCrypto? Klucz prywatny można wprowadzić w postaci <textarea> lub, jeszcze lepiej, zapisać w ustawieniach certyfikatu przeglądarki.

Base64 PDF (z REST API) → Sign z JS & certyfikatu → Podpisano Base64 PDF (wysyłanie do REST) ​​

Odpowiedz

5

It jest technicznie możliwe, aby to zrobić, w rzeczywistości jest to jeden ze scenariuszy, który mieliśmy na myśli, kiedy stworzyliśmy PKIjs (dlatego jest taka próbka) - https://pkijs.org/examples/PDFexample.html

Wymuszenie podpisania wymaga pracy z samą strukturą PDF, która wymaga niestandardowego parsera lub modyfikacji istniejącego (np. Pdfjs).

Krótko mówiąc, podpisanie pliku PDF w przeglądarce będzie wymagało wiele pracy, ale nad tym pracujemy.

+0

Chcę podpisać zwykły tekst, więc czy to możliwe w tej bibliotece? Nie znalazłem przykładu, który mógłby odczytać certyfikat p12 + klucz prywatny i wygenerować podpis. – Michael

+1

Możesz podpisać cokolwiek z nim. Ten przykład oznacza dowolne pliki - https://pkijs.org/examples/CMSSigned_complex_example.html ten przykład pokazuje importowanie PKCS # 12s - https://pkijs.org/examples/PKCS12SimpleExample.html zobacz http://unmitigatedrisk.com/? p = 543 dla niektórych ograniczeń i uwag dotyczących wdrażania. – rmhrisk

2

Istnieje PDFSign.js, biblioteka, która może podpisać plik PDF w przeglądarce. Do podpisu używa jednak forge. Jeśli PKI.js obsługuje odłączone sygnatury pkcs7, to powinno być łatwo wymienić fałsz.