Im folgenden werden Input- und Output-Daten für verschiedenen Methoden genauer beschrieben. In den Methodenbeschreibungen sind die relevanten Beschreibungen verlinkt.
Daten als Byte-Array
Verschiedene Daten wie zum Beispiel der Inhalt von PDF-Dokumenten und Zertifikaten wird an die Methoden jeweils als Byte-Array übergeben. Dafür wird der übergebene Inhalt als eine Sequenz von Bytes interpretiert.
In C# wird das Byte-Array als Object übergeben.
In C++ wird der Byte-Array in Form einer Variant-Struktur übergeben. Das Variant-Objekt muss die Attribute VT_ARRAY und VT_UI1 gesetzt haben und seine Membervariable parray muss auf eine SAFEARRAY-Struktur zeigen, die die Daten des Dokuments enthält.
Informationen über das Signaturgerät
Verwendet von:
Informationen über das für die Unterschrifterfassung verwendete Signaturgerät. Die einzelnen Informationen müssen per Semikolon getrennt werden. Folgende Informationen sind möglich:
-
Eindeutige ID (optional)
-
Firmware-Version des Pads (optional)
-
Modellname des Pads (optional; fehlt er, wird versucht, den Namen anhand der in den biometrischen Daten enthaltenen Modellnummer zu ermitteln.)
Beispiel: "1000281384;2.4;Sigma USB"
Die Informationen zum Pad können mit der entsprechenden Methode im signoPAD-API abgefragt werden.
XML-Struktur mit Informationen über ein PDF-Dokument
Verwendet von:
Beispiel:
<?xml version="1.0"?>
<PDFDocument>
<pdfaid_part>2</pdfaid_part>
<pdfaid_conformance>B</pdfaid_conformance>
<PDFVersion>1.6</PDFVersion>
</PDFDocument>
|
Element |
Beschreibung |
|
|---|---|---|
|
PDFDocument |
Wurzelelement |
|
|
|
pdfaid_part |
Nummer des PDF-Standards, z. B. “2” für PDF/A-2. Bei einem PDF/A-1 darf das für die Signatur verwendete Bild keine Transparenzen enthalten |
|
pdfaid_conformance |
Level des PDF-Standards, z. B. “B” für PDF/A-1b oder PDF/A-2b. Nicht relevant für eine korrekte Signatur. |
|
|
PDFVersion |
Version des verwendeten PDF-Standards, z. B. “1.6”. Bei PDF-Version < 1.6 ist nur der Hash-Algorithmus SHA1 erlaubt, bei PDFVersion < 1.5 sind nur Schlüssellängen bis 1024 Bit erlaubt. Details entnehmen Sie bitte der PDF-Norm. |
|
XML-Struktur mit Informationen über ein DigSig-Feld
Verwendet von:
Beispiel:
<?xml version="1.0"?>
<digsignatures>
<digsignature Name="Signature field 1">
<Name>John Doe</Name>
<Reason>I agree with this contract.</Reason>
<Location>Ratingen</Location>
<ContactInfo>+49 2102 5357510</ContactInfo>
<Time>D:20200317154124+01'00'</Time>
<Page>1</Page>
<Mandatory>false</Mandatory>
<ReadOnly>false</ReadOnly>
<FieldDescription>Customer</FieldDescription>
<Subfilter>adbe.pkcs7.detached</Subfilter>
<AdbePropBuildAppName>signotec SignPDF3</AdbePropBuildAppName>
<AdbePropBuildVersion>8.3.2.0</AdbePropBuildVersion>
<Filter>Adobe.PPKLite</Filter>
<HashAlgorithm>SHA256</HashAlgorithm>
<SignatureOid>2.16.840.1.101.3.4.2.1</SignatureOid>
<SignatureBioCertRef>O=Demo signotec;SNR=01</SignatureBioCertRef>
<Status>1</Status>
<CertExpired>0</CertExpired>
<AnnotationFlags>4</AnnotationFlags>
<Rect>
<Left>115</Left>
<Right>468</Right>
<Top>520</Top>
<Bottom>646</Bottom>
<Rotation>0</Rotation>
</Rect>
<Certificate>
<Issuer> DE, signotec GmbH, signotec Gamma Device ID:1500019258, Ratingen, CSM017134679, Nordrhein-Westfalen </Issuer>
<Serial>3d840906e0066b40e1208db9321a6100</Serial>
<PublicKeysize>2048</PublicKeysize>
<ValidTo>2020/09/29 08:39:16</ValidTo>
<ValidFrom>2019/09/26 08:39:16</ValidFrom>
<CertErrorStatus> No error found for this certificate or chain; </CertErrorStatus>
<CertErrorStatusCode>0</CertErrorStatusCode>
<CertificateData Subject="signotec demo"> MIIC6zCCAdOgAwIBAgIBATANBgkqhkiG9w0BAQUFADAwMRYwFAYDVQQKEw1zaWdub3RlYyBkZW1vMRYwFAYDVQQDEw1zaWdub3RlYyBkZW1vMB4XDTE3MDIwODEzMTUwMFoXDTMwMDIwODEzMTUwMFowMDEWMBQGA1UEChMNc2lnbm90ZWMgZGVtbzEWMBQGA1UEAxMNc2lnbm90ZWMgZGVtbzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALyrQ/FUIA61Q55pDJg1dtvVziVhEAsrEwZELufs8+xexKbaORWx3Otr4iZhh4oX1QtLfJySN/Muz9l7tAUBEvqQ22auUbI3BbzydwnNDrqqTE1kYzvGANw0qNRwItm1h4vV4kWw3DhX/2Ucpog63MrBi/3hqVx3Ne6huQrt2m4dpJdPDuImnsw5lCfB8VW9qMNEdJO3wiWugJQ8tWnBUpeu/4Shao8Ir4U5ietxLYhomOGAXljAUFt+zOmhiXcMriu2k4lG1Uh3r2M3jfXjB1A8woLHiVvDZT9eGYTjNN8sfvsADhlsQ5PZPfW3ehFo7EdP1+G1QnbPC8rLXfNyCb0CAwEAAaMQMA4wDAYDVR0PBAUDAwf/gDANBgkqhkiG9w0BAQUFAAOCAQEAr2YPgKBPCzz+4hv2336s98KhtvHrm3YEZOufD1+P2CY7bhsbLWVw+qg9wP8gz7W24QcdKf4FIyXWwCupZfOElEHZzAhNey0+u5hFMmbmOuTq4PhU48Rl/HkzJ4B532Ve8OVKEFC6+DBFjzUjMHdFXfqLUF87yicpXVpFVjOvpHl3Is1/FK86kjOS2EYq5S/eyMEbst3+d0PnOu8ddWSdcAf8ImTJu5Q5yGXfP+TCO+Vn110kbNWG39L6VhxnU7OjQKKdTp7X0Cg/k7yJocMFgmrQMY172qTziH31U6mXTdk7 dMCRb+nbj6wpTrrUhHKm4SX4DBpWO21ymVSldUEKJw== </CertificateData>
</Certificate>
<SIGNATURE_INFO>
<COMPANY>signotec GmbH</COMPANY>
<VERSION>8.1.2.13</VERSION>
<SIGN_TIME>D:20200317154124+01'00'</SIGN_TIME>
<SIGN_SNTPSERVERURL>ntp1.fau.de</SIGN_SNTPSERVERURL>
<USERID>administrator</USERID>
<MACHINE>PC123</MACHINE>
<MACADDRESS>00AA11BB22CC</MACADDRESS>
<PADID>1500019258</PADID>
<PADTYPE>115</PADTYPE>
<PADMODEL>Gamma HID</PADMODEL>
</SIGNATURE_INFO>
</digsignature>
</digsignatures>
Einige Elemente werden nur bei unterschriebenen Feldern mit Werten belegt, und zum Teil auch nur, wenn ihre Gültigkeit aufgrund der gesetzten Optionsparameter geprüft wurde. Die Felder, die davon unabhängig immer belegt werden, sind in der Tabelle farblich unterlegt.
|
Element |
Mögliche Werte |
Beschreibung |
|||||
|---|---|---|---|---|---|---|---|
|
digsignatures |
|
Wurzelelement |
|||||
|
|
digsignature Name= |
|
Element für jedes DigSig-Feld; das Attribut Name enthält den Signaturfeldnamen |
||||
|
|
Name |
|
Wert, der im Name-Tag des Signaturfelds steht (Name des Unterzeichners) |
||||
|
Reason |
|
Wert, der im Reason-Tag des Signaturfelds steht (Grund des Unterschreibens) |
|||||
|
Location |
|
Wert, der im Location-Tag des Signaturfelds steht (Ort, an dem Unterschrift geleistet wurde) |
|||||
|
ContactInfo |
|
Wert, der im ContactInfo-Tag des Signaturfelds steht (Kontakt zum Unterzeichner, z. B. Telefonnummer) |
|||||
|
Time |
|
Wert, der im M-Tag des Signaturfelds steht (Zeitpunkt, an dem unterschrieben wurde). Hinweis: Wie in der PDF-Norm spezifiziert, beginnt der Wert immer mit „D:“ |
|||||
|
Page |
>=1 |
Seite im PDF, auf der sich das Signaturfeld befindet |
|||||
|
Mandatory |
true |
Feld ist Pflichtfeld |
|||||
|
false |
Feld ist kein Pflichtfeld |
||||||
|
ReadOnly |
true |
Feld ist schreibgeschützt |
|||||
|
false |
Feld ist nicht schreibgeschützt |
||||||
|
FieldDescription |
|
Der alternative Feldname (TU-Tag des Signaturfelds) |
|||||
|
SubFilter |
|
Verwendete Signaturmethode für mögliche Werte PDF-Norm beachten |
|||||
|
AdbePropBuildAppName |
|
Name der Software, mit der das Signaturfeld unterschrieben worden ist |
|||||
|
AdbePropBuildVersion |
|
Versionsnummer der Software, mit der das Signaturfeld unterschrieben worden ist |
|||||
|
Filter |
|
Standard-Überprüfungsmethode für Signatur (für mögliche Werte PDF-Norm beachten) |
|||||
|
HashAlgorithm |
SHA1 SHA256 SHA384 SHA512 |
Hash-Algorithmus, der bei der digitalen Signatur verwendet wurde |
|||||
|
“unknown” |
Hash-Algorithmus konnte nicht ermittelt werden |
||||||
|
SignatureOid |
OID-String |
OID des Signatur-Algorithmus, der bei der digitalen Signatur verwendet wurde, z. B. "2.16.840.1.101.3.4.2.1" |
|||||
|
“unknown” |
OID kann nicht ermittelt werden |
||||||
|
SignatureBioCertRef |
|
Die ID des öffentlichen Schlüssels, mit dem die biometrischen Daten verschlüsselt worden sind |
|||||
|
Status |
0 - 4 |
Status des Signaturfeldes bezogen auf die Dokumenten-Revision |
|||||
|
|
0 |
Signatur ist gültig |
|||||
|
1 |
Signatur ist gültig, das Dokument wurde aber anschließend verändert |
||||||
|
2 |
Signatur ist ungültig |
||||||
|
3 |
Signaturfeld ist leer (nicht unterschrieben) |
||||||
|
4 |
Signatur konnte nicht überprüft werden / unbekanntes Format |
||||||
|
CertExpired |
0 - 1 |
Status des Zertifikates. Es wird das Ablaufdatum des eingebetteten öffentlichen Teils des Zertifikates überprüft |
|||||
|
|
|
0 |
Zertifikat ist gültig |
||||
|
|
|
1 |
Zertifikat ist abgelaufen |
||||
|
AnnotationFlags |
>=0 |
Bitmaske „Annotation Flags“ des Signaturfeldes (für mögliche Werte PDF-Norm beachten) |
|||||
|
Rect |
|
Position des Signaturfeldes in Punkten bezogen auf die obere linke Ecke der PDF-Seite Bitte Optionsparameter der Methode beachten |
|||||
|
|
Left |
|
Koordinate der linken Seite des Signaturfeldes |
||||
|
Right |
|
Koordinate der rechten Seite des Signaturfeldes |
|||||
|
Top |
|
Koordinate der oberen Seite des Signaturfeldes |
|||||
|
Bottom |
|
Koordinate der unteren Seite des Signaturfeldes |
|||||
|
Rotation |
0, 90, 180, 270 |
Rotation des Signaturfeldes in Grad entgegen dem Uhrzeigersinn |
|||||
|
Certificate |
|
Informationen über das verwendete Signaturzertifikat Enthält der Optionsparameter beim Aufruf den Wert 0x02, enthält dieser Knoten nur den Unterknoten “CertificateData”, sonst stattdessen alle anderen Unterknoten. |
|||||
|
|
Issuer |
|
Inhaber (Feld „Subject“) Obwohl das Element “Issuer” heißt, enthält es nicht den Aussteller! |
||||
|
Serial |
|
Seriennummer |
|||||
|
PublicKeySize |
|
Schlüssellänge in Bits, z. B. 2048 |
|||||
|
ValidTo |
|
Gültigkeitsende |
|||||
|
ValidFrom |
|
Gültigkeitsbeginn |
|||||
|
CertErrorStatus |
Fehlerbeschreibungen des Feldes dwErrorStatus der CERT_TRUST_STATUS-Struktur aus dem MS CryptoAPI |
Fehlermeldungen, mit Semikolon getrennt |
|||||
|
CertErrorStatusCode |
Wert des Feldes dwErrorStatus der CERT_TRUST_STATUS-Struktur aus dem MS CryptoAPI |
Statuscode (Bitmaske) |
|||||
|
CertificateData Subject= |
Base64-kodierte Zeichenkette |
Das Signaturzertifikat bzw. eines der Zertifikate aus dessen Kette. Für jedes Zertifikat der Kette ist der Knoten einmal vorhanden, das Attribut Subject enthält den Inhaber des Zertifikats. In Einzelfällen kann die Kette nicht in einzelne Zertifikate aufgeteilt werden, dann ist die gesamte Kette enthalten und es fehlt das Attribut Subject. |
|||||
|
SIGNATURE_INFO |
|
signotec-spezifische Metainformationen |
|||||
|
|
COMPANY |
|
Hersteller der zum Unterschreiben verwendeten Software |
||||
|
VERSION |
|
Version der zum Unterschreiben verwendeten Software |
|||||
|
SIGN_TIME |
|
Zeitstempel der Unterschrift |
|||||
|
SIGN_SNTPSERVERURL |
|
URL, von der der Zeitstempel abgefragt worden ist. |
|||||
|
USERID |
|
Name des angemeldeten Benutzers. |
|||||
|
ADDREFERENCE |
|
signotec-spezifisches Element Dieses Element kann nur bei Dokumenten vorhanden sein, die mit veralteten Methoden signiert worden sind. |
|||||
|
MACHINE |
|
Name des PCs, an dem unterzeichnet wurde |
|||||
|
PADID |
|
ID des verwendeten Signaturgeräts (z. B. Seriennummer) |
|||||
|
PADMODEL |
|
Modellbezeichnung des verwendeten Signaturgeräts |
|||||
|
PADTYPE |
|
Gerätetyp-Nummer des verwendeten Signaturgeräts |
|||||
|
MACADDRESS |
|
MAC-Adresse des PCs, an dem unterzeichnet wurde |
|||||
|
CERT |
|
Informationen über die verwendeten Zertifikate Dieses Element ist nur bei Dokumenten vorhanden, die mit veralteten Methoden signiert worden sind. |
|||||
|
|
CIPHERENC_ FILENAME |
|
Dateiname des PKCS#12-Zertifikats, das zur Signierung des Dokumentes verwendet wurde |
||||
|
BIOENC_ FILENAME |
|
Dateiname des Zertifikats, das zur Verschlüsselung der Biometrie verwendet wurde |
|||||
XML-Struktur mit den Zusatzdaten eines unterschriebenen DigSig-Feldes nach der RSA-Entschlüsselung
Verwendet von:
Beispiel:
<?xml version="1.0" encoding="iso-8859-1"?>
<SIGNATURE_INFO>
<COMPANY>signotec GmbH</COMPANY>
<VERSION>8.1.2.13</VERSION>
<SIGN_TIME>D:20200317154124+01'00'</SIGN_TIME>
<SIGN_SNTPSERVERURL>ntp1.fau.de</SIGN_SNTPSERVERURL>
<USERID>administrator</USERID>
<MACHINE>PC123</MACHINE>
<MACADDRESS>00AA11BB22CC</MACADDRESS>
<PADID>1500019258</PADID>
<PADTYPE>115</PADTYPE>
<PADMODEL>Gamma HID</PADMODEL>
<BIOMETRIC_INTEGRITY>
<DOC-HASH_VALUE> C5434136D63DEBED2DE74579CA43ACF02402DA99DC9F1B30C100AE9B5369DEBF </DOC-HASH_VALUE>
<DOC-HASH_RECALCEDVALUE> C5434136D63DEBED2DE74579CA43ACF02402DA99DC9F1B30C100AE9B5369DEBF </DOC-HASH_RECALCEDVALUE>
<DOC-HASH_ALGO>SHA256</DOC-HASH_ALGO>
<BIO-HASH_VALUE> 51BD92FEBCD0A84E1F7A793B1BFCB4222436BBC18CDD89E948922F97B51FB2C9 </BIO-HASH_VALUE>
<BIO-HASH_ALGO>SHA256</BIO-HASH_ALGO>
<TIMESTAMP>20200316161209+01'00'</TIMESTAMP>
<MACHINE>GRUETTER-E7450</MACHINE>
<USERNAME>pgr</USERNAME>
<PADID>1500015870</PADID>
<PADMODEL>Gamma HID / WinUSB</PADMODEL>
<CONTENTLENGTH>311265</CONTENTLENGTH>
<HASHTYPE>COMBINATION</HASHTYPE>
<RSA-SCHEME>PSS</RSA-SCHEME>
<RSA-SIGNATURE> D/LDj469ltZag4ucIGoEs6CYE1p0mHbIWJWpXUjf80Zb9CVWBoapVsSfOLZtGYkq4AuJe/ax/qRffIQwEBUaJTKwboeEXtz5KuM482a8IxZctYUSFBpEWNw3n0FLBuNG9dax5M+IaXRKmzPhUCjdCULsDvE9IKVFt/ntF9KND+Ok/KmaswXSWXelvgTPbhml9NGTRppLQ/KCNo6D0S/L7ae2VWOWXgfY5DNOITFnF+4quICQS026b2l1ZEu9M0oJHmvyom/fgwDI62i/dp9jMcbreW/12iF8ak2P2qGPqqJFJ3hiHFbJMtb+KUnrTb6UoOzRl7H1ZdcYTk8LEHLoxA== </RSA-SIGNATURE>
<RSA-SIGNATURE_STATUS>0</RSA-SIGNATURE_STATUS>
<CERT> MIICBDCCAW2gAwIBAgIFAlQ205owDQYJKoZIhvcNAQELBQAwRjEWMBQGA1UEChMNc2lnbm90ZWMgR21iSDEsMCoGA1UEAxMjc2lnbm90ZWMgU2lnbWEgRGV2aWNlIElEOjEwMDAyODEzODUwHhcNMjMwODMwMDAwMDAwWhcNNDkxMjMxMDAwMDAwWjBGMRYwFAYDVQQKEw1zaWdub3RlYyBHbWJIMSwwKgYDVQQDEyNzaWdub3RlYyBTaWdtYSBEZXZpY2UgSUQ6MTAwMDI4MTM4NTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53wbe0pihE7cIwEG/TYXax2OBBqirG9EuMT5zZLR4NJdJQZJFl/Nok+MUKT3ONQW+ttXL1+oYUv3+uPhAEnyFRd7s9LvsVYzRCFCmsSlcgJJOZYyclD5RDEZ+V3KVSwoID3p5+Uex9swHrFtIB5sSGSYq0u5X/fDe3TQFE4qjQcCAwEAATANBgkqhkiG9w0BAQsFAAOBgQBxbFh8qOR3vawcCRY12EhQzOLY8zuDHdkv3HI3SSpzWTJ1eOHmASudMU3izc4wLpKXo+9fe1vjx0LPU1t9qoVCXgRKhzUbn8ezzBnnhyN/OdQmVfTVASuLKolShNUZ7ygEVVeGaNyQjKcUg4j4e6ryOKvMdhGmAaolLDv7pJt8Aw== </CERT>
<EXTRA_DATA_TIMESTAMP_UTC>1692695107</EXTRA_DATA_TIMESTAMP_UTC>
<EXTRA_DATA_SERIALNUMBER>1000281385</EXTRA_DATA_SERIALNUMBER>
<EXTRA_DATA_KEYSOURCE>2</EXTRA_DATA_KEYSOURCE>
<EXTRA_DATA_DEVICEOPTIONS>422911</EXTRA_DATA_DEVICEOPTIONS>
<EXTRA_DATA_FIRMWAREMAJOR>2</EXTRA_DATA_FIRMWAREMAJOR>
<EXTRA_DATA_FIRMWAREMINOR>17</EXTRA_DATA_FIRMWAREMINOR>
</BIOMETRIC_INTEGRITY>
</SIGNATURE_INFO>
|
Element |
Mögliche Werte |
Beschreibung |
|||
|---|---|---|---|---|---|
|
SIGNATURE_INFO |
|
Wurzelelement |
|||
|
|
COMPANY |
|
Hersteller der zum Unterschreiben verwendeten Software |
||
|
VERSION |
|
Version der zum Unterschreiben verwendeten Software |
|||
|
SIGN_TIME |
|
Zeitstempel der Unterschrift |
|||
|
SIGN_SNTPSERVERURL |
|
URL, von der der Zeitstempel abgefragt worden ist |
|||
|
USERID |
|
Name des angemeldeten Benutzers |
|||
|
ADDREFERENCE |
|
signotec-spezifisches Element. Dieses Element kann nur bei Dokumenten vorhanden sein, die mit veralteten Methoden signiert worden sind. |
|||
|
MACHINE |
|
Name des PCs, an dem unterzeichnet wurde |
|||
|
PADID |
|
ID des verwendeten Signaturgeräts (z.B. Seriennummer) |
|||
|
PADMODEL |
|
Modellbezeichnung des verwendeten Signaturgeräts |
|||
|
PADTYPE |
|
Gerätetyp-Nummer des verwendeten Signaturgeräts |
|||
|
MACADDRESS |
|
MAC-Adresse des PCs, an dem unterzeichnet wurde |
|||
|
CERT |
|
Informationen über die verwendeten Zertifikate Dieses Element ist nur bei Dokumenten vorhanden, die mit veralteten Methoden signiert worden sind. |
|||
|
|
CIPHERENC_FILENAME |
|
Dateiname des PKCS#12-Zertifikats, das zur Signierung des Dokumentes verwendet wurde |
||
|
BIOENC_FILENAME |
|
Dateiname des Zertifikats, das zur Verschlüsselung der Biometrie verwendet wurde |
|||
|
BIOMETRIC_INTEGRITY |
|
Elemente zur Integritätsprüfung der biometrischen Daten. |
|||
|
|
DOC-HASH_VALUE |
|
Hash des Dokumentes vor der Einbringung der digitalen Signatur und Biometrie als Hexadezimal-String (beim Unterschreiben im Dokument hinterlegt) |
||
|
DOC-HASH_RECALCEDVALUE |
|
Hash des Dokumentes vor der Einbringung der digitalen Signatur und Biometrie als Hexadezimal-String (vom API berechnet) Entspricht der Wert nicht dem Wert von DOC-HASH_VALUE, gehören die biometrischen Daten nicht zu dem Dokument und es liegt eine Manipulation vor. |
|||
|
DOC-HASH_ALGO |
SHA1 SHA256 |
Der Hash-Algorithmus, der zur Berechnung des Dokumentenhashs verwendet worden ist |
|||
|
BIO-HASH_VALUE |
|
Hash der biometrischen Daten als Hexadezimal-String (vom API berechnet). |
|||
|
BIO-HASH_ALGO |
SHA1 SHA256 |
Der Hash-Algorithmus, der zur Berechnung des Dokumentenhashs verwendet worden ist |
|||
|
TIMESTAMP |
|
Zeitstempel der Unterschrift. Muss identisch zu SIGNATURE_INFO/SIGN_TIME sein, sonst liegt eine Manipulation vor. |
|||
|
MACHINE |
|
Name des PCs, an dem unterzeichnet wurde Muss identisch zu SIGNATURE_INFO/MACHINE sein, sonst liegt eine Manipulation vor. |
|||
|
USERNAME |
|
Name des angemeldeten Benutzers Muss identisch zu SIGNATURE_INFO/USERID sein, sonst liegt eine Manipulation vor. |
|||
|
MACADDRESS |
|
MAC-Adresse des PCs, an dem unterzeichnet wurde. Muss identisch zu SIGNATURE_INFO/MACADDRESS sein, sonst liegt eine Manipulation vor. |
|||
|
PADID |
|
ID des verwendeten Signaturgeräts (z. B. Seriennummer) Muss identisch zu SIGNATURE_INFO/PADID sein, sonst liegt eine Manipulation vor. |
|||
|
PADMODEL |
|
Modellbezeichnung des verwendeten Signaturgeräts Muss identisch zu SIGNATURE_INFO/PADMODEL sein, sonst liegt eine Manipulation vor. |
|||
|
CONTENTLENGTH |
|
Länge des Dokuments in Bytes, über das DOC-HASH_VALUE berechnet worden ist Näheres findet sich auch in der Dokumentation der Methode RSASetHash aus dem signoPAD-API. |
|||
|
HASHTYPE |
|
spezifiziert, über welche Daten RSA-SIGNATURE berechnet worden ist Näheres findet sich auch in der Dokumentation der Methode RSASign aus dem signoPAD-API. |
|||
|
|
Combination |
Biometrie wurde mit dem Dokument verknüpft signiert |
|||
|
Hash1 |
Nur Dokument wurde signiert |
||||
|
Hash2 |
Nur Biometrie wurde signiert |
||||
|
RSA-SCHEME |
|
RSA-Schema, mit dem RSA-SIGNATURE berechnet worden ist Näheres findet sich auch in der Dokumentation der Methode RSASign aus dem signoPAD-API. |
|||
|
|
NoOID |
Padding nach RSASSA-PKCS1-V1_5 ohne Hash-OID |
|||
|
PKCS1_V1_5 |
Padding nach RSASSA-PKCS1-V1_5 mit Hash-OID |
||||
|
PSS |
RSASSA-PSS |
||||
|
RSA-SIGNATURE |
|
Die beim Unterschreiben im Signaturgerät berechnete Signatur als Base64 kodierter String. |
|||
|
RSA-SIGNATURE_STATUS |
|
Status der RSA-Signatur |
|||
|
|
0 |
Die RSA-Signatur ist intakt, die biometrischen Daten gehören zu diesem Dokument |
|||
|
2 |
Die RSA-Signatur ist nicht intakt, die Dokument wurde manipuliert oder die biometrischen Daten gehören nicht zu dem Dokument |
||||
|
4 |
Die RSA-Signatur konnte nicht geprüft werden |
||||
|
CERT |
Base64-kodierter String |
Das öffentliche Zertifikat, mit dem der Status der Signatur ermittelt worden ist |
|||
|
EXTRA_DATA_TIMESTAMP_UTC |
|
Zeitstempel der Unterschrift in Sekunden seit dem 01.01.1970 in UTC. |
|||
|
EXTRA_DATA_SERIALNUMBER |
|
Seriennummer des Signaturgeräts, mit dem die Daten erfasst worden sind |
|||
|
EXTRA_DATA_KEYSOURCE |
0 - 2 |
Herkunft des für die Signierung verwendeten Schlüssels |
|||
|
|
0 |
im Gerät erzeugter Schlüssel |
|||
|
1 |
extern erzeugter und ins Gerät geladener Schlüssel |
||||
|
2 |
werksseitig gespeicherter Schlüssel |
||||
|
EXTRA_DATA_ DEVICEOPTIONS |
|
Geräteoptionen des Signaturgeräts; für Details sprechen Sie bitte Ihren Kontakt bei signotec an. |
|||
|
EXTRA_DATA_ FIRMWAREMAJOR |
|
Major-Firmware-Version des Signaturgerätes, mit dem die Daten erfasst worden sind. |
|||
|
EXTRA_DATA_ FIRMWAREMINOR |
|
Minor-Firmware-Version des Signaturgerätes, mit dem die Daten erfasst worden sind. |
|||
XML-Struktur mit den benötigten Eingabeinformationen beim Unterschreiben
Verwendet von:
Beispiel:
<?xml version="1.0" encoding="utf-8"?>
<SIGNATURE_INFO>
<Name>John Doe</Name>
<Reason>I agree with this contract.</Reason>
<Location>Ratingen</Location>
<ContactInfo>+49 2102 5357510</ContactInfo>
<AdbePropBuildAppName>signotec SignoAPI Demo</AdbePropBuildAppName>
<AdbePropBuildVersion>1.0.0.0</AdbePropBuildVersion>
<Rect>
<Left>115</Left>
<Right>468</Right>
<Top>520</Top>
<Bottom>646</Bottom>
</Rect>
<Page>1</Page>
<TimeStamp>
<TimeStamp>D:20180927140151+02'00'</TimeStamp>
<SNTPServerURL>ntp1.fau.de</SNTPServerURL>
<Option>1</Option>
</TimeStamp>
<Subfilter>adbe.pkcs7.detached</Subfilter>
<HashAlgorithm>SHA256</HashAlgorithm>
<RSAParams>
<ContentLength>311265</ContentLength>
<HashType>Combination</HashType>
<RSAScheme>PSS</RSAScheme>
<RSASignature> esyFl7788AusYiwE4B6MtJqGV3feSEvuYQ3tAvCI19OxVmbsxmmKHc3A0S82PR3HCoFTmCJFkGkvAnkHeQJ0GngIOFy1PJwwoG94I/8612KCeT45UbtMY82j2KKSfEc1cUJXQg6fSxUbvuleqygtpM96xHHwYlKEBFaoEoRLoIuNowrYGR6mA+n2oLuPQYzF/B3THZeQ43ind9jrghbrP7koG+Lu2X4FK0Pbiyxby0mfCDLhVqWylTyJq855FTUdlQBTnpodrsvnVJhHKbQIvZrAgnePYZlj96GKFZzCjsGq2304mXw3ZdHVUlnbyNMA8FptyP7qV7kdcjLHMf1YMg== </RSASignature>
<PadSigningCert> MIICBDCCAW2gAwIBAgIFAlQ205owDQYJKoZIhvcNAQELBQAwRjEWMBQGA1UEChMNc2lnbm90ZWMgR21iSDEsMCoGA1UEAxMjc2lnbm90ZWMgU2lnbWEgRGV2aWNlIElEOjEwMDAyODEzODUwHhcNMjMwODMwMDAwMDAwWhcNNDkxMjMxMDAwMDAwWjBGMRYwFAYDVQQKEw1zaWdub3RlYyBHbWJIMSwwKgYDVQQDEyNzaWdub3RlYyBTaWdtYSBEZXZpY2UgSUQ6MTAwMDI4MTM4NTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53wbe0pihE7cIwEG/TYXax2OBBqirG9EuMT5zZLR4NJdJQZJFl/Nok+MUKT3ONQW+ttXL1+oYUv3+uPhAEnyFRd7s9LvsVYzRCFCmsSlcgJJOZYyclD5RDEZ+V3KVSwoID3p5+Uex9swHrFtIB5sSGSYq0u5X/fDe3TQFE4qjQcCAwEAATANBgkqhkiG9w0BAQsFAAOBgQBxbFh8qOR3vawcCRY12EhQzOLY8zuDHdkv3HI3SSpzWTJ1eOHmASudMU3izc4wLpKXo+9fe1vjx0LPU1t9qoVCXgRKhzUbn8ezzBnnhyN/OdQmVfTVASuLKolShNUZ7ygEVVeGaNyQjKcUg4j4e6ryOKvMdhGmAaolLDv7pJt8Aw== </PadSigningCert>
<BioAlgorithm>SHA256</BioAlgorithm>
<DocAlgorithm>SHA256</DocAlgorithm>
</RSAParams>
</SIGNATURE_INFO>
|
Element |
Mögliche Werte |
Beschreibung |
|||
|---|---|---|---|---|---|
|
SIGNATURE_INFO |
|
Wurzelelement |
|||
|
|
Name |
|
Wert, der in das Name-Tag des Signaturfelds geschrieben wird (Name des Unterzeichners). Wenn das Element fehlt oder leer ist, wird automatisch der Name des Zertifikats eingetragen. |
||
|
Reason |
|
Wert, der in das Reason-Tag des Signaturfelds geschrieben wird (Grund des Unterschreibens). Wenn das Element fehlt oder leer ist, wird kein Grund eingetragen. |
|||
|
Location |
|
Wert, der in das Location-Tag des Signaturfelds geschrieben wird (Ort, an dem Unterschrift geleistet wird). Wenn das Element fehlt oder leer ist, wird kein Ort eingetragen. |
|||
|
ContactInfo |
|
Wert, der in das ContactInfo-Tag des Signaturfelds geschrieben wird (Kontakt zum Unterzeichner, z. B. Telefonnummer). Wenn das Element fehlt oder leer ist, wird kein Kontakt eingetragen. |
|||
|
AdbePropBuildAppName |
|
Name der Software, mit der das Signaturfeld unterschrieben wird. Wenn das Element fehlt oder leer ist, wird „signotec SignPDF3“ verwendet. |
|||
|
AdbePropBuildVersion |
|
Versionsnummer der Software, mit der das Signaturfeld unterschrieben wird. Wenn das Element fehlt oder leer ist, wird die Versionsnummer der verwendeten SignPDF3.dll verwendet. |
|||
|
Rect |
|
Position des Signaturfeldes in Punkten bezogen auf die obere linke Ecke der PDF-Seite Bitte Optionsparameter der Methode beachten! optional; nur notwendig, wenn das Signaturfeld noch nicht vorhanden ist oder die Position des vorhandenen Signaturfeldes geändert werden soll |
|||
|
|
Left |
>=0 |
Koordinate der linken Seite des Signaturfeldes. |
||
|
Right |
>=0 |
Koordinate der rechten Seite des Signaturfeldes. |
|||
|
Top |
>=0 |
Koordinate der oberen Seite des Signaturfeldes. |
|||
|
Bottom |
>=0 |
Koordinate der unteren Seite des Signaturfeldes. |
|||
|
Page |
>=1 |
Seitennummer im PDF, auf der das Signaturfeld erstellt werden soll (optional; nur notwendig, wenn das Signaturfeld noch nicht vorhanden ist). |
|||
|
Timestamp |
|
Wurzelelement zum Konfigurieren des Zeitstempels der Unterschrift. |
|||
|
|
Timestamp |
Zeitstempel im Format „yyyyMMddHHmmsszz“ |
Zeitstempel, der in das M-Tag des Signaturfelds, in die Metadaten der Unterschrift und in die verschlüsselten biometrischen Daten geschrieben wird |
||
|
leer |
Die aktuelle Computerzeit oder die Zeit eines SNTP-Servers wird verwendet |
||||
|
SNTPServerURL |
|
URL eines SNTP-Servers, von dem die aktuelle Zeit abgefragt werden soll bzw. abgefragt worden ist (optional). |
|||
|
Option |
0 - 2 |
Definiert die Bedeutung von SNTPServerURL |
|||
|
|
0 |
Der Wert wird ungeprüft in den Metadaten der Unterschrift gespeichert; er sollte nur übergeben werden, wenn die aufrufende Anwendung den Zeitstempel tatsächlich von dieser URL abgefragt hat (Standard) |
|||
|
1 |
Es wird versucht, die Zeit von der URL abzufragen; schlägt das fehl, wird die in Timestamp übergebene oder die aktuelle Computerzeit verwendet |
||||
|
2 |
Es wird versucht, die Zeit von der URL abzufragen; schlägt das fehl, kehrt die Methode mit einem Fehler zurück |
||||
|
Subfilter |
adbe.pkcs7.sha1 adbe.pkcs7.detached |
verwendete Signaturmethode zur Berechnung der Signatur Details zu der korrekten Berechnung der digitalen Signatur entnehmen Sie bitte der PDF-Norm |
|||
|
HashAlgorithm |
SHA1 SHA256 SHA384 SHA512 |
Hashalgorithmus, der für die Berechnung der Signatur verwendet werden soll Welcher Hash-Algorithmus verwendet werden darf, ist von der PDF-Version des Dokuments abhängig. Ist das Dokument noch nicht signiert, wird die Version des Dokuments gegebenenfalls erhöht, damit der angegebene Algorithmus verwendet werden kann. Mit AnalyzePdfDocumentMemory kann die aktuelle Version des Dokuments abgefragt werden. |
|||
|
RSAParams |
|
Enthält Unterelemente, die die im Signaturgerät berechnete Signatur der biometrischen Daten definiert optional; nur notwendig, wenn die biometrischen Daten im Signaturgerät verschlüsselt und signiert worden sind Die Werte werden nicht überprüft oder ausgewertet; fehlerhafte Werte können dazu führen, dass die Integrität der biometrischen Daten im Nachhinein nicht überprüft werden kann.
Näheres zu den folgenden Parametern findet sich auch in der Dokumentation der Methoden RSASign und RSASetHash aus dem signoPAD-API. |
|||
|
|
HashType |
|
spezifiziert, über welche Daten die Signatur berechnet worden ist |
||
|
|
Combination |
Biometrie wurde mit dem Dokument verknüpft signiert |
|||
|
Hash1 |
nur Dokument wurde signiert |
||||
|
Hash2 |
nur Biometrie wurde signiert |
||||
|
ContentLength |
|
Länge des Dokuments in Bytes, über das der Hash 1 berechnet worden ist |
|||
|
RSAScheme |
|
RSA-Schema, mit dem die Signatur berechnet worden ist |
|||
|
|
NoOID |
Padding nach RSASSA-PKCS1-V1_5 ohne Hash-OID |
|||
|
PKCS1_V1_5 |
Padding nach RSASSA-PKCS1-V1_5 mit Hash-OID |
||||
|
PSS |
RSASSA-PSS |
||||
|
RSASignature |
Base64-kodierter String |
die berechnete Signatur |
|||
|
PadSigningCert |
Base64-kodierter String |
das öffentliche Zertifikat des Signaturgeräts, mit dem die Signatur geprüft werden kann optional; nur nötig, wenn das Dokument nicht auch im Signaturgerät signiert werden soll |
|||
|
DocAlgorithm |
SHA1 SHA256 |
Hash-Algorithmus, der zu Berechnung des Hash 1 verwendet worden ist |
|||
|
BioAlgorithm |
SHA1 SHA256 |
Hash-Algorithmus, der zu Berechnung des Hash 2 verwendet worden ist |
|||
SignData
Die Datenstruktur “SignData“ ist ein von signotec entwickeltes Standardformat für die Unterschriftendaten, das von verschiedenen Komponenten verwendet wird. Es ist ein verschlüsseltes, komprimiertes, biometrisches Format, das in einer Datenbank und oder als Tag in einem TIFF-Dokument oder einem PDF-Dokument hinterlegt werden kann.