Setting the encryption secret

End-to-end encrypted sessions are created using server APIs (see Enabling encryption using the [REST API](/video/guides/end-to-end-encryption/overview#enabling-encryption-using-the-rest-api)).

Bevor der Client publiziert oder abonniert, rufen Sie die otc_session_set_encryption_secret() Funktion:

Ein gültiges Geheimnis ist eine Zeichenfolge zwischen 8 und 256 Zeichen. Sie können das Geheimnis ändern, indem Sie die Funktion otc_session_set_encryption_secret() Funktion wieder.

Die Übergabe eines ungültigen Geheimnisses führt zu einer OTC_SESSION_INVALID_ENCRYPTION_SECRET Fehler.

Events and errors

Events and errors are essential to managing the behavior of user-driven encryption behavior. End-to-end encryption uses the shared secret model: everyone in the session is expected to use the same secret to encrypt their media and decrypt everyone else's.

Der neue Fehlercode lautet OTC_SESSION_INVALID_ENCRYPTION_SECRET und wird als Ergebniscode der Methode set_encryption_secret zurückgegeben, nicht im on_error-Callback.

Wenn ein Client versucht, ein ungültiges Verschlüsselungsgeheimnis für eine Sitzung zu setzen, gibt die Funktion otc_session_callbacks.on_error() einen Fehlercode zurück, der auf OTC_SESSION_INVALID_ENCRYPTION_SECRET. Im folgenden Beispiel wird eine Sitzung mit einem leeren (und damit ungültigen) Verschlüsselungsgeheimnis initialisiert:

Wenn ein Benutzer versucht, in einer Ende-zu-Ende-verschlüsselten Sitzung zu veröffentlichen, ohne ein Verschlüsselungsgeheimnis angegeben zu haben, wird der Aufruf der otc_session_publish() Funktion führt zu der otc_publisher_callbacks.on_error() Funktion, die mit einem Fehler aufgerufen wird, dessen Code auf OTC_SESSION_ENCRYPTION_SECRET_MISSING gesetzt ist. Um die Benutzerfreundlichkeit zu erhöhen, sollte die Anwendung ein vom Benutzer eingegebenes Geheimnis validieren, bevor sie die Funktion otc_session_publish() Funktion:

Wenn ein Teilnehmer aufgrund eines falschen Verschlüsselungsgeheimnisses nicht in der Lage ist, die Medien eines Streams zu entschlüsseln, wird der subscriber_callbacks.on_error() Funktion mit einem Fehler aufgerufen wird, dessen Code auf OTC_SUBSCRIBER_ENCRYPTION_SECRET_MISMATCH. Es ist wichtig, dem Benutzer mitzuteilen, dass die Medien aufgrund eines Verschlüsselungsfehlers und nicht aufgrund eines Verbindungsfehlers oder eines Audio-/Videoproblems nicht empfangen werden können:

Wenn ein Teilnehmer bei der Entschlüsselung eines Pakets auf einen internen Fehler stößt, wird der subscriber_callbacks.on_error() Funktion mit einem Fehler aufgerufen wird, dessen Code auf OTC_SUBSCRIBER_DECRYPTION_INTERNAL_ERROR.