Breadcrumbs

SignPDF3 – Daten und Datenformate

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
<?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
<?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
<?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
<?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.
Diese Elemente beziehen sich nicht auf die DigSig-Signatur, sondern ausschließlich auf die vor Aufruf der Methode im Signaturgerät berechnete Signatur, mit der die Integrität der biometrischen Daten sichergestellt 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.