Der Aufruf Set_Conversation_Encryption_Level (CMSCEL) beeinflusst den Wert für die Conversation Characteristic ENCRYPTION-LEVEL. Mit der Verschlüsselungsebene wird festgelegt, ob während der Conversation die Benutzerdaten verschlüsselt oder unverschlüsselt übertragen werden sollen. Der Aufruf überschreibt den Wert von encryption_level, der beim Initialize_Conversation-Aufruf zugewiesen wurde.
Der Aufruf Set_Conversation_Encryption_Level ist nur im Zustand "Initialize" erlaubt.
UPIC-Local auf Unix-, Linux- und Windows-Systemen:
Die Datenübertragung ist durch die Art der Übertragung selbst geschützt. Der Aufruf Set_Conversation_Encryption_Level wird nicht unterstützt.
Diese Funktion gehört zu den zusätzlichen Funktionen des Trägersystems UPIC; sie ist nicht Bestandteil der CPI-C-Schnittstelle.
CMSCEL (conversation_ID, encryption_level, return_code)
Parameter
--> conversation_ID | Identifikation der Conversation |
--> encryption_level | legt fest, ob in der Conversation die Benutzerdaten verschlüsselt oder nicht verschlüsselt werden sollen. Folgende Werte können Sie angeben: CM_ENC_LEVEL_NONE CM_ENC_LEVEL_3 CM_ENC_LEVEL_4 CM_ENC_LEVEL_5 Die Benutzerdaten werden verschlüsselt und authentifiziert übertragen, zum Verschlüsseln wird der AES-Algorithmus benutzt. Für den Austausch des AES-Schlüssels wird das Diffie-Hellman-Verfahren mit RSA-Schlüssellänge 2048 Bit verwendet. |
<-- return_code | Ergebnis des Funktionsaufrufs. |
Ergebnis ( return_code )
CM_OK
Aufruf ok
CM_CALL_NOT_SUPPORTED
Dieser Returncode gilt nur für Unix-, Linux- und Windows-Systeme.
Die Funktion wird nicht unterstützt. Dieser Returncode tritt nur bei UPIC-L auf. Er zeigt dem Programm an, dass keine Verschlüsselung notwendig ist.
CM_PROGRAM_STATE_CHECK
Die Conversation ist nicht im Zustand "Initialize".
CM_PROGRAM_PARAMETER_CHECK
Der Wert der conversation_ID ist ungültig oder der Wert von encryption_level ist undefiniert.
CM_PRODUCT_SPECIFIC_ERROR
Die UPIC-Instanz konnte nicht gefunden werden.
CM_ENCRYPTION_NOT_SUPPORTED
Für diese Conversation ist keine Verschlüsselung möglich, weil entweder
die Softwarevoraussetzungen nicht erfüllt sind
auf Unix-, Linux- und Windows-Systemen die UTM-Partner-Anwendung keine Verschlüsselung will, da der UPIC-L-Client vertrauenswürdig (trusted) ist.
CM_ENCRYPTION_LEVEL_NOT_SUPPORTED
die Verschlüsselung mit der angegebenen Verschlüsselungsebene (encryption_level) wird von UPIC nicht unterstützt.
Zustandsänderung
Im fehlerfreien Fall liefert die Funktion das Ergebnis CM_OK zurück. Der Aufruf ändert den Zustand der Conversation nicht.
Hinweis
Falls der Returncode von CM_OK verschieden ist, bleibt die Characteristic ENCRYPTION_LEVEL unverändert.
Ist die Verschlüsselungsebene, die von der UTM-Anwendung gefordert wird, höher als die auf der UPIC-Client Seite, wird die höhere Verschlüsselungsebene wirksam. D.h. wenn die UTM-Anwendung eine bestimmte Verschlüsselungsebene fordert, so verschlüsselt der UPIC-Client die Daten mit dieser Stufe, ungeachtet der von der UPIC-Anwendung eingestellten Verschlüsselungsebene.
Wenn zum Zeitpunkt des Aufrufs keine Kommunikationsverbindung zu einer UTM-Partner-Anwendung besteht, beendet sich die Funktion immer mit dem Returncode CM_OK. Erst beim folgenden Allocate-Aufruf wird entschieden, ob die gewünschte Verschlüsselungsebene wirksam wird.
Verhalten im Fehlerfall
CM_CALL_NOT_SUPPORTED
Dieser Returncode gilt nur für Unix-, Linux- und Windows-Systeme.
Muss kein Fehler sein: Falls eine Anwendung sowohl für UPIC-L als auch für UPIC-R vorgesehen ist, bedeutet dieser Returncode lediglich, dass die Anwendung mit einer UPIC-L-Bibliothek gebunden ist. In diesem Fall ist Verschlüsselung nicht nötig. Das Programm kann sich diesen Returncode merken und auf weitere Aufrufe zur Verschlüsselung verzichten. Ggfs. im UPIC-Protokoll überprüfen, ob diese Sutuation vorliegt.
CM_PROGRAM_STATE_CHECK
Programm ändern.
CM_PROGRAM_PARAMETER_CHECK
Programm ändern.
CM_PRODUCT_SPECIFIC_ERROR
Das Betriebssystem kann nicht genügend Speicherplatz für interne Puffer bereitstellen. Überprüfen Sie Ihr Programm auf zu hohe Speicherplatzanforderung und starten Sie ggf. Ihr System neu.
CM_ENCRYPTION_NOT_SUPPORTED
Muss kein Fehler sein: Falls eine UPIC-R Anwendung mit verschiedenen UTM-Partnern kommuniziert, von denen einige verschlüsseln können und andere nicht, bedeutet dieser Returncode lediglich, dass die Anwendung mit einer UTM-Anwendung kommuniziert, die nicht verschlüsseln kann oder will. In diesem Fall ist Verschlüsselung nicht möglich. Das Programm kann sich diesen Returncode merken und auf weitere Aufrufe zur Verschlüsselung verzichten.
CM_ENCRYPTION_LEVEL_NOT_SUPPORTED
Die UPIC-Bibliothek hat eventuell eine alte Encryption-Bibliothek geladen. Stellen Sie sicher, dass die Encryption-Bibliothek der neuesten openUTM-Client Version installiert ist und auch geladen wird. Beachten Sie bitte die Suchreihenfolge für Bibliotheken in den verschiedenen Betriebssystemen.
CM_ENTRY Set_Conversation_Encryption_Level unsigned char CM_PTR conversation_ID, CM_ENCRYPTION_LEVEL CM_PTR encryption_level, CM_RETURN_CODE CM_PTR return_code )