|
ERiC API-Referenz 43.3.2.0
|
Deklaration der Otto-Funktionen. Mehr ...
Include-Abhängigkeitsdiagramm für otto.h:gehe zum Quellcode dieser Datei
Funktionen | |
| OttoStatusCode | OttoInstanzErzeugen (const byteChar *logPfad, OttoLogCallback logCallback, void *logCallbackBenutzerdaten, OttoInstanzHandle *instanz) |
| Erstellt und initialisiert eine neue Otto-Instanz. | |
| OttoStatusCode | OttoInstanzFreigeben (OttoInstanzHandle instanz) |
| Gibt eine Otto-Instanz frei. | |
| OttoStatusCode | OttoZertifikatOeffnen (OttoInstanzHandle instanz, const byteChar *zertifikatsPfad, const byteChar *zertifikatsPasswort, OttoZertifikatHandle *zertifikat) |
| Erstellt ein Otto-Zertifikatsobjekt für ein Sicherheitstoken. | |
| OttoStatusCode | OttoZertifikatOeffnenAusBytes (OttoInstanzHandle instanz, const byteChar *pkcs12Container, uint32_t containerGroesse, const byteChar *zertifikatsPasswort, OttoZertifikatHandle *zertifikat) |
| Erstellt ein Otto-Zertifikatsobjekt für ein PKCS#12-Sicherheitstoken, das im Hauptspeicher übergeben wird. | |
| OttoStatusCode | OttoZertifikatSchliessen (OttoZertifikatHandle zertifikat) |
| Schließt das Otto-Zertifikatsobjekt zu einem Sicherheitstoken. Anschließend darf das Zertifikatsobjekt nicht mehr verwendet werden. | |
| OttoStatusCode | OttoRueckgabepufferErzeugen (OttoInstanzHandle instanz, OttoRueckgabepufferHandle *rueckgabepuffer) |
| Erzeugt einen Rückgabepuffer und gibt ein Handle darauf zurück. | |
| uint64_t | OttoRueckgabepufferGroesse (OttoRueckgabepufferHandle rueckgabepuffer) |
| Gibt die Anzahl der im Rückgabepuffer enthaltenen Bytes zurück. Das abschließende Null-Byte wird nicht mitgezählt. | |
| const byteChar * | OttoRueckgabepufferInhalt (OttoRueckgabepufferHandle rueckgabepuffer) |
| Gibt den Inhalt eines Rückgabepuffers zurück. | |
| OttoStatusCode | OttoRueckgabepufferFreigeben (OttoRueckgabepufferHandle rueckgabepuffer) |
| Gibt einen Rückgabepuffer frei. | |
| OttoStatusCode | OttoPruefsummeErzeugen (OttoInstanzHandle instanz, OttoPruefsummeHandle *pruefsumme) |
| Erzeugt ein Objekt zur Berechnung einer Datenprüfsumme, die Otto zu Beginn einer Übermittlung an den OTTER-Server senden muss. | |
| OttoStatusCode | OttoPruefsummeAktualisieren (OttoPruefsummeHandle pruefsumme, const byteChar *datenBlock, uint64_t datenBlockGroesse) |
| Aktualisiert die Prüfsumme über Daten. Eine Prüfsumme, die bereits signiert wurde, kann nicht mehr aktualisiert werden. | |
| OttoStatusCode | OttoPruefsummeSignieren (OttoPruefsummeHandle pruefsumme, OttoZertifikatHandle zertifikat, OttoRueckgabepufferHandle rueckgabepuffer) |
| Erstellt eine Signatur über eine Prüfsumme. | |
| OttoStatusCode | OttoPruefsummeFreigeben (OttoPruefsummeHandle pruefsumme) |
| Gibt ein Prüfsummenobjekt frei. | |
| OttoStatusCode | OttoVersandBeginnen (OttoInstanzHandle instanz, const byteChar *signiertePruefsumme, const byteChar *herstellerId, OttoVersandHandle *versand) |
| Initialisiert einen Datenversand an den OTTER-Server. | |
| OttoStatusCode | OttoVersandFortsetzen (OttoVersandHandle versand, const byteChar *datenBlock, uint64_t datenBlockGroesse) |
| Versendet einen Datenblock an den OTTER-Server. | |
| OttoStatusCode | OttoVersandAbschliessen (OttoVersandHandle versand, OttoRueckgabepufferHandle objektId) |
| Schließt einen Versand ab und gibt die Objekt-ID zurück. | |
| OttoStatusCode | OttoVersandBeenden (OttoVersandHandle versand) |
| Gibt ein Versandobjekt frei. | |
| OttoStatusCode | OttoEmpfangBeginnen (OttoInstanzHandle instanz, const byteChar *objektId, OttoZertifikatHandle zertifikat, const byteChar *herstellerId, OttoEmpfangHandle *empfang) |
| Initialisiert eine Datenabholung vom OTTER-Server. | |
| OttoStatusCode | OttoEmpfangBeginnenAbholzertifikat (OttoInstanzHandle instanz, const byteChar *objektId, OttoZertifikatHandle zertifikat, const byteChar *herstellerId, const byteChar *abholzertifikat, OttoEmpfangHandle *empfang) |
| Initialisiert eine Datenabholung vom OTTER-Server mit Angabe eines Abholzertifikats. | |
| OttoStatusCode | OttoEmpfangFortsetzen (OttoEmpfangHandle empfang, OttoRueckgabepufferHandle datenBlock) |
| Empfängt einen Datenblock vom OTTER-Server. | |
| OttoStatusCode | OttoEmpfangBeenden (OttoEmpfangHandle empfang) |
| Gibt das Empfangsobjekt wieder frei. | |
| OttoStatusCode | OttoDatenAbholen (OttoInstanzHandle instanz, const byteChar *objektId, uint32_t objektGroesse, const byteChar *zertifikatsPfad, const byteChar *zertifikatsPasswort, const byteChar *herstellerId, const byteChar *abholzertifikat, OttoRueckgabepufferHandle abholDaten) |
| Holt das Datenobjekt zu einer Objekt-ID von OTTER mit einem einzigen Funktionsaufruf vollständig ab. | |
| const char * | OttoHoleFehlertext (OttoStatusCode statuscode) |
| Die Funktion liefert die Klartextfehlermeldung zu einem Otto-Statuscode - definiert in otto_statuscode.h. | |
| OttoStatusCode | OttoProxyKonfigurationSetzen (OttoInstanzHandle instanz, const OttoProxyKonfiguration *proxyKonfiguration) |
| Konfiguriert eine Otto-Instanz für einen Proxy. | |
| OttoStatusCode | OttoEinstellungSetzen (OttoInstanzHandle instanz, const char *einstellungName, const char *einstellungWert) |
| Setzt den Wert einer Otto-Einstellung für die angegebene Instanz. | |
| OttoStatusCode | OttoEinstellungLesen (OttoInstanzHandle instanz, const char *einstellungName, OttoRueckgabepufferHandle einstellungWert) |
| Liest den aktuellen Wert einer Otto-Einstellung in der angegebenen Instanz aus. | |
| OttoStatusCode | OttoVersion (OttoRueckgabepufferHandle rueckgabepuffer) |
| Gibt die Version der Otto-Bibliothek zurück. | |
Deklaration der Otto-Funktionen.
Definiert in Datei otto.h.
| OttoStatusCode OttoDatenAbholen | ( | OttoInstanzHandle | instanz, |
| const byteChar * | objektId, | ||
| uint32_t | objektGroesse, | ||
| const byteChar * | zertifikatsPfad, | ||
| const byteChar * | zertifikatsPasswort, | ||
| const byteChar * | herstellerId, | ||
| const byteChar * | abholzertifikat, | ||
| OttoRueckgabepufferHandle | abholDaten ) |
Holt das Datenobjekt zu einer Objekt-ID von OTTER mit einem einzigen Funktionsaufruf vollständig ab.
Diese Funktion ist eine bequemere Alternative zu der blockweisen Datenabholung über die OttoEmpfang-Funktionen. Intern bündelt sie die Aufrufe der OttoEmpfangs-Funktionen, wie sie sonst von der Anwendung selbst durchgeführt werden müßten.
Der Nachteil dieser Funktion gegenüber den OttoEmpfang-Funktionen besteht darin, dass die abgeholten Daten alle im Hauptspeicher von Otto gehalten werden. Sie eignet sich daher nicht für die Abholung sehr großer Datenobjekte oder wenn nur sehr wenig Hauptspeicher zur Verfügung steht.
| [in] | instanz | Handle der Otto-Instanz, auf der diese Funktion ausgeführt werden soll. |
| [in] | objektId | ID des Datenobjekts, das vom OTTER-Server abgeholt werden soll. |
| [in] | objektGroesse | Die erwartete Größe des Datenobjekts, das vom OTTER-Server abgeholt werden soll, in Bytes. Diesen Wert findet die Anwendung zusammen mit der Objekt-ID im Rückgabe-XML zu einer PostfachAnfrage. Wenn die Größe zu gering angegeben wird, geht dies zwar zu Lasten der Geschwindigkeit und des Hauptspeicherbedarfs, weil dann der Rückgabepuffer von Otto intern sukzessive vergrößert werden muß, aber es führt nicht zu einem Fehler. |
| [in] | zertifikatsPfad | Pfad zum Sicherheitstoken, folgende Angaben sind möglich:
|
(*) Wird der Dateipfad eines Treibers angegeben, ist der Suchmechanismus zu beachten, mit dem das jeweilige Betriebssystem dynamische Bibliotheken lädt. Weitere Informationen sind der Systemdokumentation zu den Betriebssystemfunktionen LoadLibrary() (Windows) bzw. dlopen() (Linux, AIX und macOS) zu entnehmen.
Pfade müssen auf Windows in der für Datei-Funktionen benutzten ANSI-Codepage, auf Linux, AIX und Linux Power in der für das Dateisystem benutzten Locale und auf macOS in der "decomposed form" von UTF-8 übergeben werden. Bitte weitere Betriebssystemspezifika bzgl. nicht erlaubter Zeichen in Pfaden und Pfadtrennzeichen beachten.
Für Details zu Pfaden im ERiC siehe ERiC-Entwicklerhandbuch.pdf, Kapitel "Übergabe von Pfaden an ERiC API-Funktionen".
| [in] | zertifikatsPasswort | Das Passwort oder die PIN des Sicherheitstokens. Bei Tokens, bei denen das Passwort oder die PIN nicht von der Anwendung übergeben, sondern separat über einen Treiber (z. B. von einem Kartenlesegerät) abgefragt wird, ist hier NULL zu übergeben. |
| [in] | herstellerId | Hersteller-ID des Softwareproduktes |
| [in] | abholzertifikat | Base64-kodierter Teil eines X.509-v3-Zertifikats im PEM-Format. Die Angabe eines Abholzertifikats ist optional und nur erlaubt, wenn im Parameter zertifikatsPfad kein clientseitig erzeugtes Zertifikat (CEZ) angegeben wurde. Wird ein Abholzertifikat übergeben, so werden die Abholdaten vom Server auf den öffentlichen Schlüssel des Zertifikats umgeschlüsselt. Diese Daten werden vom Otto nicht entschlüsselt und OttoDatenAbholen() gibt lediglich die verschlüsselten Daten zurück. Wenn eine nicht bei ELSTER registrierte Signaturkarte zur Authentifizierung verwendet wird, muss dieser Parameter gesetzt werden, ansonsten kann hier NULL übergeben werden. |
| [out] | abholDaten | Rückgabepuffer mit den abgeholten Daten. Der Inhalt des Rückgabepuffers darf nicht als null-terminierte Zeichenkette interpretiert werden, da die abgeholten Daten weitere Null-Bytes enthalten können. |
| OttoStatusCode OttoEinstellungLesen | ( | OttoInstanzHandle | instanz, |
| const char * | einstellungName, | ||
| OttoRueckgabepufferHandle | einstellungWert ) |
Liest den aktuellen Wert einer Otto-Einstellung in der angegebenen Instanz aus.
| [in] | instanz | Die Otto-Instanz, deren Einstellung ausgelesen werden soll. |
| [in] | einstellungName | Name der Einstellung, deren Wert ausgelesen werden soll. |
| [out] | einstellungWert | Der ausgelesene Wert der Einstellung |
| OttoStatusCode OttoEinstellungSetzen | ( | OttoInstanzHandle | instanz, |
| const char * | einstellungName, | ||
| const char * | einstellungWert ) |
Setzt den Wert einer Otto-Einstellung für die angegebene Instanz.
Die Einstellungen gelten immer nur für die übergebene Otto-Instanz.
Die Änderungen von Werten ist nicht immer unmittelbar wirksam.
| [in] | instanz | Die Otto-Instanz, für die eine Einstellung gesetzt werden soll. |
| [in] | einstellungName | Name der Einstellung, deren Wert gesetzt werden soll. |
| [in] | einstellungWert | Wert, auf den die Einstellung gesetzt werden soll. |
| OttoStatusCode OttoEmpfangBeenden | ( | OttoEmpfangHandle | empfang | ) |
Gibt das Empfangsobjekt wieder frei.
Das Empfangsobjekt darf nach diesem Aufruf nicht mehr verwendet werden. Wird diese Funktion aufgerufen, bevor OttoEmpfangFortsetzen() einen leeren Rückgabepuffer zurückgegeben hat, können die bis dahin empfangenen Daten unvollständig sein.
| [in] | empfang | Ein mit OttoEmpfangBeginnen() erzeugtes Handle |
| OttoStatusCode OttoEmpfangBeginnen | ( | OttoInstanzHandle | instanz, |
| const byteChar * | objektId, | ||
| OttoZertifikatHandle | zertifikat, | ||
| const byteChar * | herstellerId, | ||
| OttoEmpfangHandle * | empfang ) |
Initialisiert eine Datenabholung vom OTTER-Server.
Das zurückgegebene Handle des Empfangsobjekts wird der Funktion OttoEmpfangFortsetzen() übergeben, um Daten blockweise abzuholen. Sind alle Daten abgeholt, wird OttoEmpfangBeenden() aufgerufen, womit das Empfangsobjekt wieder freigegeben wird.
| [in] | instanz | Handle der Otto-Instanz, auf der diese Funktion ausgeführt werden soll. |
| [in] | objektId | ID des Objekts, das vom OTTER-Server abgeholt werden soll. |
| [in] | zertifikat | Handle auf ein Zertifikatsobjekt |
| [in] | herstellerId | Hersteller-ID des Softwareproduktes |
| [out] | empfang | Handle auf das Empfangsobjekt. Im Fehlerfall wird kein Empfangobjekt erzeugt. |
| OttoStatusCode OttoEmpfangBeginnenAbholzertifikat | ( | OttoInstanzHandle | instanz, |
| const byteChar * | objektId, | ||
| OttoZertifikatHandle | zertifikat, | ||
| const byteChar * | herstellerId, | ||
| const byteChar * | abholzertifikat, | ||
| OttoEmpfangHandle * | empfang ) |
Initialisiert eine Datenabholung vom OTTER-Server mit Angabe eines Abholzertifikats.
Die Angabe eines Abholzertifikats ist erforderlich, wenn eine nicht bei ELSTER registrierte Signaturkarte zur Authentifizierung verwendet wird.
Die Funktion darf nicht verwendet werden, wenn zur Authentifizierung ein clientseitig erzeugtes Zertifikat (CEZ) verwendet wird. (Parameter zertifikat)
Das zurückgegebene Handle des Empfangsobjekts wird der Funktion OttoEmpfangFortsetzen() übergeben, um Daten blockweise abzuholen. Sind alle Daten abgeholt, wird OttoEmpfangBeenden() aufgerufen, womit das Empfangsobjekt wieder freigegeben wird.
Ein wichtiger Unterschied zu OttoEmpfangBeginnen() besteht darin, dass der OTTER-Server die Daten auf den in abholzertifikat enthaltenen öffentlichen Schlüssel umschlüsselt. Die Daten werden vom Otto nicht entschlüsselt und OttoEmpfangFortsetzen() gibt lediglich die verschlüsselten Daten zurück.
| [in] | instanz | Handle der Otto-Instanz, auf der diese Funktion ausgeführt werden soll. |
| [in] | objektId | ID des Objekts, das vom OTTER-Server abgeholt werden soll. |
| [in] | zertifikat | Handle auf ein Zertifikatsobjekt Es darf hier kein clientseitig erzeugtes Zertifikat (CEZ) angegeben werden. |
| [in] | herstellerId | Hersteller-ID des Softwareproduktes |
| [in] | abholzertifikat | Base64-kodierter Teil eines X.509-v3-Zertifikats im PEM-Format |
| [out] | empfang | Handle auf das Empfangsobjekt. Im Fehlerfall wird kein Empfangobjekt erzeugt. |
| OttoStatusCode OttoEmpfangFortsetzen | ( | OttoEmpfangHandle | empfang, |
| OttoRueckgabepufferHandle | datenBlock ) |
Empfängt einen Datenblock vom OTTER-Server.
Otto empfängt Daten vom OTTER-Server und gibt sie blockweise an den Aufrufer zurück. Wird OTTO_OK zurückgegeben, kann diese Funktion erneut aufgerufen werden und weitere Datenblöcke empfangen werden. Werden leere Daten zurückgegeben, ist der Empfang beendet und alle Daten wurden empfangen. Dann muss OttoEmpfangBeenden() aufgerufen werden.
| [in] | empfang | Ein mit OttoEmpfangBeginnen() erzeugtes Handle. |
| [out] | datenBlock | Rückgabepuffer mit allen oder einem Teil der empfangenen Daten. Falls leer, ist der Empfang beendet. Der Inhalt des Rückgabepuffers darf nicht als null-terminierte Zeichenkette interpretiert werden, da die empfangenen Daten weitere Null-Bytes enthalten können. |
| const char * OttoHoleFehlertext | ( | OttoStatusCode | statuscode | ) |
Die Funktion liefert die Klartextfehlermeldung zu einem Otto-Statuscode - definiert in otto_statuscode.h.
| [in] | statuscode | Statuscode |
NULL, falls kein Text ermittelt werden konnte. | OttoStatusCode OttoInstanzErzeugen | ( | const byteChar * | logPfad, |
| OttoLogCallback | logCallback, | ||
| void * | logCallbackBenutzerdaten, | ||
| OttoInstanzHandle * | instanz ) |
Erstellt und initialisiert eine neue Otto-Instanz.
Otto-Instanzen sind nicht an ihre Ersteller-Threads gebunden. Sie dürfen zwar nicht gleichzeitig in mehreren Threads verwendet werden, aber sie dürfen wechselnd von verschiedenen Threads verwendet werden. Das heißt insbesondere, dass sie von neuen Threads wiederverwendet werden können.
Otto-Instanzen sind in dem Sinne threadsicher, dass verschiedene Otto-Instanzen zeitgleich in verschiedenen Threads verwendet werden können. Jedoch darf ein- und dieselbe Otto-Instanz nicht zeitgleich in mehreren Threads verwendet werden.
| [in] | logPfad | Optionaler Pfad zur Log-Datei otto.log. Ist der Wert gleich NULL, wird das betriebssystemspezifische Verzeichnis für temporäre Dateien verwendet. |
| [in] | logCallback | Callback-Funktion, die gegebenenfalls von Otto bei der Protokollierung von Meldungen aufgerufen wird. Siehe OttoLogCallback Der Parameter darf NULL sein. |
| [in] | logCallbackBenutzerdaten | Beliebiger Zeiger auf Daten, den Otto beim Aufruf eines Über diesen Weg kann sich eine Anwendung eigene Daten an ihre Log-Callback-Funktion übergeben lassen. Der Parameter darf |
| [out] | instanz | Handle der erzeugten Otto-Instanz |
Kann kein otto.log angelegt werden, wird eine entsprechende Fehlermeldung auf die Konsole (stderr) geschrieben und an den Windows-Ereignisdienst bzw. den syslogd-Dienst (Linux, AIX, macOS) geschickt.
Für Linux, AIX und macOS ist zu beachten, dass der syslogd-Dienst gegebenenfalls erst noch zu aktivieren und für die Protokollierung von Meldungen der Facility "User" zu konfigurieren ist. Suchkriterien für Otto-Meldungen in der Windows-Ereignisansicht sind "ERiC (Elster Rich Client)" als Quelle und "Anwendung" als Protokoll.
Suchkriterien für ERiC-Meldungen in den Systemlogdateien unter Linux, AIX und macOS sind die Facility "User" und der Ident "ERiC (Elster Rich Client)".
| OttoStatusCode OttoInstanzFreigeben | ( | OttoInstanzHandle | instanz | ) |
Gibt eine Otto-Instanz frei.
Die freigegebene Otto-Instanz sowie alle eventuell noch daran gebundenen Objekte dürfen nach der Freigabe nicht mehr verwendet werden.
| [in] | instanz | Handle der Otto-Instanz, die freigegeben werden soll. |
| OttoStatusCode OttoProxyKonfigurationSetzen | ( | OttoInstanzHandle | instanz, |
| const OttoProxyKonfiguration * | proxyKonfiguration ) |
Konfiguriert eine Otto-Instanz für einen Proxy.
Damit eine Otto-Instanz ihre Internetverbindungen über einen Proxy aufbaut, muss ihr die Proxy-Konfiguration über diese Methode mitgeteilt werden. Die Konfiguration gilt dann für alle Verbindungen der Instanz nach außen, d.h. für die Verbindungen zu den OTTER-Servern ebenso wie für Verbindungen zum ELSTER-eID-Server bei der Verwendung eines elektronischen Personalausweises oder Aufenthaltstitels.
| [in] | instanz | Die Otto-Instanz, für die die Konfiguration gelten soll. |
| [in] | proxyKonfiguration | Die Proxy-Konfiguration, die von der Otto-Instanz verwendet werden soll. Wenn hier NULL übergeben wird, verwendet die Otto-Instanz keinen Proxy. |
| OttoStatusCode OttoPruefsummeAktualisieren | ( | OttoPruefsummeHandle | pruefsumme, |
| const byteChar * | datenBlock, | ||
| uint64_t | datenBlockGroesse ) |
Aktualisiert die Prüfsumme über Daten. Eine Prüfsumme, die bereits signiert wurde, kann nicht mehr aktualisiert werden.
| [in,out] | pruefsumme | Handle der Prüfsumme, die aktualisiert werden soll. |
| [in] | datenBlock | Zeiger auf die Daten, über die die Prüfsumme aktualisiert werden soll. |
| [in] | datenBlockGroesse | Größe der Daten, über die die Prüfsumme aktualisiert werden soll, in Bytes. |
| OttoStatusCode OttoPruefsummeErzeugen | ( | OttoInstanzHandle | instanz, |
| OttoPruefsummeHandle * | pruefsumme ) |
Erzeugt ein Objekt zur Berechnung einer Datenprüfsumme, die Otto zu Beginn einer Übermittlung an den OTTER-Server senden muss.
Das Prüfsummenobjekt ist an die Otto-Instanz gebunden, für die es erzeugt wurde und darf nicht zusammen mit einer anderen Otto-Instanz oder mit Objekten anderen Otto-Instanzen verwendet werden.
| [in] | instanz | Handle der Otto-Instanz, für die das Prüfsummenobjekt erzeugt werden soll. |
| [out] | pruefsumme | Handle des erzeugten Prüfsummenobjekts |
| OttoStatusCode OttoPruefsummeFreigeben | ( | OttoPruefsummeHandle | pruefsumme | ) |
Gibt ein Prüfsummenobjekt frei.
Das Prüfsummenobjekt darf danach nicht wieder verwendet werden.
| [in] | pruefsumme | Handle des Prüfsummenobjekts, das freigegeben werden soll. |
| OttoStatusCode OttoPruefsummeSignieren | ( | OttoPruefsummeHandle | pruefsumme, |
| OttoZertifikatHandle | zertifikat, | ||
| OttoRueckgabepufferHandle | rueckgabepuffer ) |
Erstellt eine Signatur über eine Prüfsumme.
Die Signierung der Prüfsumme ist nur dann möglich, wenn diese über die Mindestdatenmenge für eine Übermittlung an den OTTER-Server berechnet wurde. (20 MiB) Eine Prüfsumme kann nur einmalig signiert werden. Danach muß das Prüfsummenobjekt freigegeben werden.
| [in] | pruefsumme | Handle der Prüfsumme, die signiert werden soll. |
| [in] | zertifikat | Handle des Sicherheitstoken, mit dem die Prüfsumme signiert werden soll. |
| [out] | rueckgabepuffer | Handle des Rückgabepuffers, in den die signierte Prüfsumme geschrieben werden soll. Die signierte Prüfsumme wird als base64-codierte Zeichenfolge übergeben. |
| OttoStatusCode OttoRueckgabepufferErzeugen | ( | OttoInstanzHandle | instanz, |
| OttoRueckgabepufferHandle * | rueckgabepuffer ) |
Erzeugt einen Rückgabepuffer und gibt ein Handle darauf zurück.
Die von dieser Funktion erzeugten Rückgabepuffer werden verwendet, um die Rückgabedaten von Otto-Funktionen (z. B. OttoEmpfangFortsetzen() oder OttoVersandBeenden()) aufzunehmen. Dazu wird das Rückgabepuffer-Handle für den Schreibvorgang an die ausgebende Funktion übergeben.
Zum Auslesen des von den API-Funktionen beschriebenen Puffers wird das Rückgabepuffer-Handle an OttoRueckgabepufferInhalt() übergeben. Ein einmal erzeugtes Rückgabepuffer-Handle kann für weitere nachfolgende Aufrufe von Otto API-Funktionen wiederverwendet werden. Bei einer Wiederverwendung eines Handles werden frühere Inhalte überschrieben. Nach letztmaliger Verwendung muss jeder Rückgabepuffer mit OttoRueckgabepufferFreigeben() freigegeben werden.
Der Rückgabepuffer ist an die Otto-Instanz gebunden, für die er erzeugt wurde und kann nicht zusammen mit einer anderen Otto-Instanz oder mit Objekten anderen Otto-Instanzen verwendet werden.
| [in] | instanz | Handle der Otto-Instanz, auf der diese Funktion ausgeführt werden soll. |
| [out] | rueckgabepuffer | Zeiger auf das Handle des erzeugten Rückgabepuffers |
| OttoStatusCode OttoRueckgabepufferFreigeben | ( | OttoRueckgabepufferHandle | rueckgabepuffer | ) |
Gibt einen Rückgabepuffer frei.
Das Handle des Rückgabepuffers darf danach nicht weiter verwendet werden. Es wird daher empfohlen, Handle-Variablen nach der Freigabe explizit auf NULL zu setzen.
| [in] | rueckgabepuffer | Handle auf den Rückgabepuffer, der freigegeben werden soll. Dieser Rückgabepuffer darf nicht bereits freigegeben worden sein. |
| uint64_t OttoRueckgabepufferGroesse | ( | OttoRueckgabepufferHandle | rueckgabepuffer | ) |
Gibt die Anzahl der im Rückgabepuffer enthaltenen Bytes zurück. Das abschließende Null-Byte wird nicht mitgezählt.
| [in] | rueckgabepuffer | Das Handle des Rückgabepuffers |
| const byteChar * OttoRueckgabepufferInhalt | ( | OttoRueckgabepufferHandle | rueckgabepuffer | ) |
Gibt den Inhalt eines Rückgabepuffers zurück.
Der zurückgegebene Zeiger verweist auf ein Byte-Array, das alle in den Rückgabepuffer geschriebenen Bytes enthält. Dieses Array existiert so lange im Speicher, bis der Rückgabepuffer entweder (bei einer Wiederverwendung des Handles) erneut beschrieben oder der Puffer explizit freigegeben wird. Der Array wird immer von einem Null-Byte abgeschlossen. Wenn der Rückgabepuffer keine weiteren Null-Bytes enthält, kann folglich der Rückgabepufferinhalt bequem als null-terminierte Zeichenkette interpretiert werden.
| [in] | rueckgabepuffer | Das Handle des Rückgabepuffers, dessen Inhalt zurückgegeben werden soll. |
| OttoStatusCode OttoVersandAbschliessen | ( | OttoVersandHandle | versand, |
| OttoRueckgabepufferHandle | objektId ) |
Schließt einen Versand ab und gibt die Objekt-ID zurück.
Mit dieser Funktion wird das Ende der Daten gekennzeichnet und der Datenversand abgeschlossen.
Im Erfolgsfall wird die vom OTTER-Server vergebene Objekt-ID zurückgegeben, über die die versendeten Daten bei OTTER referenziert werden.
| [in] | versand | Ein mit OttoVersandBeginnen() erzeugtes Handle |
| [out] | objektId | Handle des Rückgabepuffers, in den die Objekt-ID geschrieben werden soll. |
| OttoStatusCode OttoVersandBeenden | ( | OttoVersandHandle | versand | ) |
Gibt ein Versandobjekt frei.
Das Versandobjekt darf danach nicht wieder verwendet werden.
| [in] | versand | Handle des Versandobjekts, das freigegeben werden soll. |
| OttoStatusCode OttoVersandBeginnen | ( | OttoInstanzHandle | instanz, |
| const byteChar * | signiertePruefsumme, | ||
| const byteChar * | herstellerId, | ||
| OttoVersandHandle * | versand ) |
Initialisiert einen Datenversand an den OTTER-Server.
Das zurückgegebene Handle des Versandobjekts wird der Funktion OttoVersandFortsetzen() übergeben, um Daten blockweise hochzuladen. Sind alle Daten versendet, ist OttoVersandAbschliessen() aufzurufen, womit der Versand abgeschlossen wird. Zum Freigeben des Versandobjekts ist OttoVersandBeenden() aufzurufen.
Bevor der Versand begonnen werden kann, muss eine Prüfsumme über alle zu versendenen Daten gebildet (siehe OttoPruefsummeErzeugen()) und mit OttoPruefsummeSignieren() signiert werden.
| [in] | instanz | Handle der Otto-Instanz, auf der diese Funktion ausgeführt werden soll. |
| [in] | signiertePruefsumme | Signierte Prüfsumme über die Gesamtheit der Daten, die in diesem Versand versendet werden sollen. Die signierte Prüfsumme wird als base64-codierte, nullterminierte Zeichenfolge erwartet, wie sie von OttoPruefsummeSignieren() zurückgeliefert wird. |
| [in] | herstellerId | Hersteller-ID des Softwareproduktes |
| [out] | versand | Handle auf das Versandobjekt. Im Fehlerfall wird kein Versandobjekt erzeugt. |
| OttoStatusCode OttoVersandFortsetzen | ( | OttoVersandHandle | versand, |
| const byteChar * | datenBlock, | ||
| uint64_t | datenBlockGroesse ) |
Versendet einen Datenblock an den OTTER-Server.
Otto liest den übergebenen Datenblock ein und versendet ihn an den OTTER-Server. Wenn OTTO_OK zurückgegeben wird, kann diese Funktion erneut mit einem weiteren Datenblock aufgerufen werden. Dies ist zu wiederholen, bis Otto alle zu diesem Versand gehörigen Daten erhalten hat. Falls nicht OTTO_OK zurückgegeben wird, ist der Versand fehlgeschlagen.
Ist das Ende der Daten erreicht, muss OttoVersandAbschliessen() aufgerufen werden.
| [in] | versand | Ein mit OttoVersandBeginnen() erzeugtes Handle |
| [in] | datenBlock | Zeiger auf die zu versendenen Daten. Falls NULL wird der Aufruf ignoriert. |
| [in] | datenBlockGroesse | Größe des Arrays datenBlock in Bytes. Falls 0 wird der Aufruf ignoriert. |
| OttoStatusCode OttoVersion | ( | OttoRueckgabepufferHandle | rueckgabepuffer | ) |
Gibt die Version der Otto-Bibliothek zurück.
| OttoStatusCode OttoZertifikatOeffnen | ( | OttoInstanzHandle | instanz, |
| const byteChar * | zertifikatsPfad, | ||
| const byteChar * | zertifikatsPasswort, | ||
| OttoZertifikatHandle * | zertifikat ) |
Erstellt ein Otto-Zertifikatsobjekt für ein Sicherheitstoken.
Das Zertifikatsobjekt ist an die Otto-Instanz gebunden, für die es erzeugt wurde, und darf nicht zusammen mit einer anderen Otto-Instanz oder mit Objekten anderer Otto-Instanzen verwendet werden. Soll ein Sicherheitstoken von mehreren Otto-Instanzen verwendet werden, so sind hierfür mehrere Zertifikatsobjekte zu erstellen: für jede Instanz eines.
| [in] | instanz | Handle der Otto-Instanz, die das Zertifikatsobjekt verwenden soll. |
| [in] | zertifikatsPfad | Pfad zum Sicherheitstoken, folgende Angaben sind möglich:
|
(*) Wird der Dateipfad eines Treibers angegeben, ist der Suchmechanismus zu beachten, mit dem das jeweilige Betriebssystem dynamische Bibliotheken lädt. Weitere Informationen sind der Systemdokumentation zu den Betriebssystemfunktionen LoadLibrary() (Windows) bzw. dlopen() (Linux, AIX und macOS) zu entnehmen.
(**) Bei Signaturkarten erfolgt eine PIN-Abfrage nicht beim Aufruf von OttoZertifikatOeffnen(), sondern beim Aufruf von OttoPruefsummeSignieren(), OttoEmpfangBeginnen() und OttoEmpfangBeginnenAbholzertifikat().
Pfade müssen auf Windows in der für Datei-Funktionen benutzten ANSI-Codepage, auf Linux, AIX und Linux Power in der für das Dateisystem benutzten Locale und auf macOS in der "decomposed form" von UTF-8 übergeben werden. Bitte weitere Betriebssystemspezifika bzgl. nicht erlaubter Zeichen in Pfaden und Pfadtrennzeichen beachten.
Für Details zu Pfaden im ERiC siehe ERiC-Entwicklerhandbuch.pdf, Kapitel "Übergabe von Pfaden an ERiC API-Funktionen".
| [in] | zertifikatsPasswort | Das Passwort oder die PIN des Sicherheitstokens. Bei Tokens, bei denen das Passwort oder die PIN nicht von der Anwendung übergeben, sondern separat über einen Treiber (z. B. von einem Kartenlesegerät) abgefragt wird, ist hier NULL zu übergeben. |
| [out] | zertifikat | Handle auf das erstellte Zertifikatsobjekt |
| OttoStatusCode OttoZertifikatOeffnenAusBytes | ( | OttoInstanzHandle | instanz, |
| const byteChar * | pkcs12Container, | ||
| uint32_t | containerGroesse, | ||
| const byteChar * | zertifikatsPasswort, | ||
| OttoZertifikatHandle * | zertifikat ) |
Erstellt ein Otto-Zertifikatsobjekt für ein PKCS#12-Sicherheitstoken, das im Hauptspeicher übergeben wird.
Das Zertifikatsobjekt ist an die Otto-Instanz gebunden, für die es erzeugt wurde, und darf nicht zusammen mit einer anderen Otto-Instanz oder mit Objekten anderer Otto-Instanzen verwendet werden. Soll ein PKCS#12-Container von mehreren Otto-Instanzen verwendet werden, so sind hierfür mehrere Zertifikatsobjekte zu erstellen: für jede Instanz eines.
| [in] | instanz | Handle der Otto-Instanz, die das Zertifikatsobjekt verwenden soll. |
| [in] | pkcs12Container | Adresse des PKCS#12-Containers im Hauptspeicher. Es werden nur passwortgeschützte PKCS#12-Container akzeptiert. |
| [in] | containerGroesse | Größe des PKCS#12-Containers in Bytes |
| [in] | zertifikatsPasswort | Das Passwort oder die PIN des PKCS#12-Containers. Dieser Parameter darf nicht NULL sein. |
| [out] | zertifikat | Handle auf das erstellte Zertifikatsobjekt |
| OttoStatusCode OttoZertifikatSchliessen | ( | OttoZertifikatHandle | zertifikat | ) |
Schließt das Otto-Zertifikatsobjekt zu einem Sicherheitstoken. Anschließend darf das Zertifikatsobjekt nicht mehr verwendet werden.
| [in] | zertifikat | Handle auf das Zertifikatsobjekt, das geschlossen werden soll. |