Podepsání/pečetění hash
Metoda webové služby SignHash umožňuje vytvořit podpis/pečeť k hash libovolného dokumentu nebo dat.
Výpočet hash provádí volající aplikace, která je zodpovědná za správnost výpočtu hashe. Pro správné vytvoření podpisu/pečeti k danému hash je nutné, aby odpovídal také hashovací algoritmus.
Vrácený podpis/pečeť k hash je třeba odpovídajícím způsobem vložit do dat dokumentu (dle specifikací ETSI) nebo uchovat u daného souboru (v případě externího CMS podpisu).
Popis služby včetně WSDL schématu a příklad požadavku a odpovědi pro SOAP 1.1 a SOAP 1.2 je umístěn na https://rsmtest.secusign.eu/Core.asmx?op=SignHash.
Struktura požadavku v rozhraní SOAP 1.1
POST /Core.asmx HTTP/1.1
Host: rsmtest.secusign.eu
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://software602.com/secusign/SignHash"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<SignHash xmlns="http://software602.com/secusign/">
<Hash>base64Binary</Hash>
<HashAlgOID>string</HashAlgOID>
<SignatureFormat>int</SignatureFormat>
<Params>string</Params>
</SignHash>
</soap:Body>
Vstupní parametry metody
<Hash>
[povinný element]
Vstupní hodnota | Popis |
---|---|
Base64Binary |
Vypočtený Hash dokumentu, resp. dat, kódovaný v Base64 Pro výpočet kódovaného Base64 sha256 hash lze využít např. openssl openssl sha256 -binary test.pdf >hash.bin certutil -encode hash.bin hash.b64 nebo třeba online aplikace: |
<HashAlgOID>
[povinný element]
Vstupní hodnota | Popis |
---|---|
String |
OID hashovacího algoritmu použitého pro výpočet. Například pro hashovací algoritmus SHA256 to je OID: 2.16.840.1.101.3.4.2.1. |
<SignatureFormat>
[nepovinný element]
Vstupní hodnota | Popis |
---|---|
Int |
Typ podpisu. Hodnoty:
|
<Params>
[nepovinný element]
Vstupní hodnota | Popis |
---|---|
String |
Nepovinné, aktuálně se nevyužívá. |
Struktura odpovědi na požadavek v rozhraní SOAP 1.1
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<SignHashResponse xmlns="http://software602.com/secusign/">
<SignHashResult>int</SignHashResult>
<SignedData>base64Binary</SignedData>
<SigningCert>base64Binary</SigningCert>
<StatusMessage>string</StatusMessage>
</SignHashResponse>
</soap:Body>
</soap:Envelope>
Výstupní parametry metody
<SignHashResult>
Návratová hodnota | Popis |
---|---|
Int |
Výsledek metody signHash (podepsání hash certifikátem). 0 = v pořádku, jinak dojde k chybě popsané ve StatusMessage. |
<SignedData>
Návratová hodnota | Popis |
---|---|
Base64Binary |
Podepsaná data ve formátu CMS nebo PKCS1 kódovaná v Base64. |
<SigningCert>
Návratová hodnota | Popis |
---|---|
Base64Binary |
Data X.509 certifikátu použitého pro podpis/pečeť kódovaná v Base64. Ze získaných dat lze po dekódování zjistit např. vystavitel certifikátu, pro koho byl certifikát vystaven, platnost certifikátu od-do, kryptografický otisk (hash) a další informace. |
<StatusMessage>
Návratová hodnota | Popis |
---|---|
String |
Obsahuje podrobnější popis chyby v případě, že dojde k problému. |
Příklad volání
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<SignHash xmlns="http://software602.com/secusign/">
<Hash>WF+N/nCzu8+YMA9PII2bQRH/V1hYEUdt8KSJuPCqnCI=</Hash>
<HashAlgOID>2.16.840.1.101.3.4.2.1</HashAlgOID>
<SignatureFormat>0</SignatureFormat>
<Params/>
</SignHash>
</soap:Body>
</soap:Envelope>