Portál AbcLinuxu, 10. května 2025 03:52

Dotaz: Knihovna pro dig. podpis PDF?

9.3.2010 17:30 Boris Dušek | skóre: 22 | blog: everything
Knihovna pro dig. podpis PDF?
Přečteno: 442×
Odpovědět | Admin
Zdravím,

víte někdo o nějaké multiplatformní knihovně zdarma, která umí podepisovat PDF (jedná se mi o interní podpis uložený jako součást PDF souboru)? Vím, že existuje pro Javu utilitka JSignPdf, která používá knihovnu iText, ale Java na Mac OS X má bug, který znemožňuje použití více než jednoho "podpisu" ze systémového uložiště (Keychain; a dávat klíč ještě do JKS se mi nechce). Přitom na Windows to funguje s Windows Certificate Store OK. Proto by mě zajímalo, jestli existuje mimo iText alternativní knihovna (nejlépe v C(++)) pro interní podepisování PDF, abych si mohl GUI utilitku a la JSignPdf napsat pro Mac OS X sám (za předpokladu, že na to najdu čas :-).

Díky moc za jakýkoliv nápad.
vim ~/.emacs
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.3.2010 17:56 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Knihovna pro dig. podpis PDF?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ta chyba na Mac OS X je někde popsaná? V přístupu k systémovému úložišti certifikátů Windows je chyba/problém, protože certifikáty se získávají podle jména, takže pokud máte v úložišti víc certifikátů se stejným jménem, dostanete se jenom k jednomu z nich. Pomáhá pak certifikátu dát ve Windows nějakou unikátní přezdívku, pak se k němu dostanete. Není to na Mac OS X stejný problém?
9.3.2010 21:46 Boris Dušek | skóre: 22 | blog: everything
Rozbalit Rozbalit vše Re: Knihovna pro dig. podpis PDF?
Příloha:
Díky za odpověď a sorry za zpoždění, ale musel jsem si to pro jistotu znovu zkusit, tentokrát se 2 testovacími certifikáty přímo od PostSignum (IE-only), stejné jméno i email, jen pokaždé jiná organizace a IČO. Na Windows se mi s použitím minimálního testovacího programu v Javě (v příloze) zobrazily oba certifikáty (a nemusel jsem jim dávat ani jinou "přezdívku"), zatímco na Mac OS X jen jeden. Pro jistotu jsem si nechal udělat ještě 3. demo certifikát, ale na úplně jiné jméno a email a organizaci, a výsledek pořád stejný (na Windows se zobrazuje i třetí), takže to není kolizí hodnoty nějakého pole certifikátu.

Našel jsem vlákno o tomhle problému s Javou na OS X, ale moc jsem se v něm nevyznal. Každopádně to nahlásím Applu :-), ale i tak bych rád měl tu možnost použít nativní knihovnu.

Testovací program je v příloze, dá se shrnout do této podoby:
        KeyStore keyStore = KeyStore.getInstance(keyStoreName); // keyStoreName je "KeychainStore" na OS X, "Windows-my" na Windows
        keyStore.load(null, null);
        Enumeration<String> keyAliases = keyStore.aliases();
        while (keyAliases.hasMoreElements()) {
            String keyAlias = keyAliases.nextElement();
            if (keyStore.entryInstanceOf(keyAlias, KeyStore.PrivateKeyEntry.class))
                System.out.println(keyAlias);
vim ~/.emacs
9.3.2010 22:11 Boris Dušek | skóre: 22 | blog: everything
Rozbalit Rozbalit vše Re: Knihovna pro dig. podpis PDF?
Tak jsem se aspoň donutil to nahlásit Applu, Bug ID #7734307.
vim ~/.emacs
10.3.2010 09:48 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Knihovna pro dig. podpis PDF?
Na Windows by se vám v tomto případě měly vypsat dva (resp. tři) přezdívky (keyAlias), ale pokud budou některé shodné, dostanete se pouze k jednomu certifikátu s danou přezdívkou (protože k certifikátům pak přistupujete právě přes jejich přezdívku). Pokud se ale už v tomto kroku na Mac OS X vypíše jen jedna přezdívka, je to jiná chyba, než ve Windows.
10.3.2010 10:12 Boris Dušek | skóre: 22 | blog: everything
Rozbalit Rozbalit vše Re: Knihovna pro dig. podpis PDF?
Ano, už zde se na OS X vypisuje jediný (první?) certifikát, nehledě na to, jestli se v něčem shoduje s ostatními nebo ne. Ve Windows se skutečně vypíší všechny (i v GUI), ale když zadám dokument postupně podepsat 2 různými podpisy se stejným jménem (tedy i Java přezdívkou) i emailem, tak v podepsaném dokumentu jsou 2 podpisy, ale za stejný certifikát. Když dám ve Windows těmto certifikátům dodatečně jinou Windows přezdívku, tak jednak se Java přezdívka změní na tuto Windows přezdívku, a jednak už pak samozřejmě jde podepisovat 2 certifikáty se stejným jménem i emailem. Díky, i tahle znalost ohledně Windows se bude hodit. Bohužel, Java na OS X selhává naprosto vždy, když je víc než jeden certifikát (nehledě na přezdívky).
vim ~/.emacs
10.3.2010 10:11 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Knihovna pro dig. podpis PDF?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Proto by mě zajímalo, jestli existuje mimo iText alternativní knihovna (nejlépe v C(++)) pro interní podepisování PDF
V poppleri som vyplnil bug report. Už je tam rok a pol a nevyzerá, že by to niekam spelo.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.