31 OpenSSL a PKCS#7 podpis ZFO

admin 23.01.2017 08:59

Dobrý den,

dle dokumentace by mělo být možné odstranit podpis ze souboru ZFO pomocí API knihovny OpenSSL, ovšem nedaří se mi to touto cestou. Prosím o radu případně nějaké příklady, jak získat obsah datové zprávy bez binárních dat v prostředí OS Linux nebo jazyce PHP.

 

Děkuji

Vojtěch Beneš

31.1 Re: OpenSSL a PKCS#7 podpis ZFO

admin 23.01.2017 08:59 Attachments: asn1.php

Dobrý den.

Pro "rozebrání" datové zprávy ve formátu ZFO je třeba si ujasnit, jak jsou data uložena.

Stažená DZ jsou podepsaná data jasné XML struktury dané příslušným XSD nebo popisem v dokumentaci. Vlastní podpis (PKCS#7) je soubor údajů ve struktuře CMS (jednotlivé elementy podpisu jsou popsány ASN1 notací a celé je to serializované pomocí DER kodování). Tedy abyste získal podepsaný obsah, musíte ZFO rozebrat na jednotlivé elementy CMS struktury a najít element obsahující XML data, který pak již standardní cestou parsujete na XML elementy. V jiných CMS elementech najdete podpis, certifikát a další zajímavé údaje, které můžete také nabídnout uživateli vaší aplikace.

Pro php existují různé knihovny, např. asn1.php, kterou přikládám.

 

Jan Šíma