OpenOffice.org podporuje podepisování dokumentů, které jsou v jeho výchozím formátu (Open Document), ale nepodporuje digitální podpisy při exportu do PDF. Koumal jsem jak si s tím poradit a našel jsem možnost, udělat si utilitku v Javě pomocí knihovny iText. Nejlepší by asi bylo naimplementovat to přímo jako modul do OpenOffice.org, ale na to momentálně nemám čas. :-)
final KeyStore ks = KeyStore.getInstance("pkcs12");
ks.load(
new FileInputStream(
"exported_certificate.pfx"),
"cert_password".toCharArray());
final String alias = (String) ks.aliases().nextElement();
final PrivateKey key = (PrivateKey) ks.getKey(alias,
"cert_password".toCharArray());
final Certificate[] chain = ks.getCertificateChain(alias);
final PdfReader reader = new PdfReader("original.pdf");
final FileOutputStream fout = new FileOutputStream("signed.pdf");
final PdfStamper stp =
PdfStamper.createSignature(reader, fout, '\0');
final PdfSignatureAppearance sap = stp.getSignatureAppearance();
sap.setCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED);
sap.setReason("I'm paranoid.");
sap.setLocation("Wien");
stp.close();
Komentáře