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)).Antes de que el cliente publique o se suscriba, llame a la función otc_session_set_encryption_secret() función:
Un secreto válido es una cadena de entre 8 y 256 caracteres. Puede cambiar el secreto llamando a la función otc_session_set_encryption_secret() función de nuevo.
Si se introduce un secreto no válido, se producirá un error OTC_SESSION_INVALID_ENCRYPTION_SECRET error.
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.El nuevo código de error es OTC_SESSION_INVALID_ENCRYPTION_SECRET y se devolverá como código de resultado del método set_encryption_secret, no en la llamada de retorno on_error.
Si un cliente intenta establecer un secreto de cifrado no válido para una sesión, otc_session_callbacks.on_error() devuelve un código de error con el valor OTC_SESSION_INVALID_ENCRYPTION_SECRET. En el siguiente ejemplo, una sesión se inicializa con un secreto de encriptación vacío (y por tanto inválido):
Si un usuario intenta publicar en una sesión cifrada de extremo a extremo sin haber especificado un secreto de cifrado, al llamar a la función otc_session_publish() da como resultado la función otc_publisher_callbacks.on_error() con un error cuyo código es OTC_SESSION_ENCRYPTION_SECRET_MISSING. Para obtener la mejor experiencia de usuario, la aplicación debe validar un secreto suministrado por el usuario antes de llamar a la función otc_session_publish() función:
Si un abonado no puede descodificar los medios de un flujo debido a un secreto de cifrado incorrecto, el subscriber_callbacks.on_error() con un error cuyo código es OTC_SUBSCRIBER_ENCRYPTION_SECRET_MISMATCH. Es importante comunicar al usuario que los medios no se están recibiendo debido a un desajuste de cifrado y no a un fallo de conexión o a un problema de audio/vídeo:
Si un abonado encuentra un error interno al descifrar un paquete, el subscriber_callbacks.on_error() con un error cuyo código es OTC_SUBSCRIBER_DECRYPTION_INTERNAL_ERROR.