Cifrado de extremo a extremo
Este tema incluye información detallada sobre el uso del cifrado de extremo a extremo en el Client SDK de Vonage Video para React Native:
Para obtener una visión general del cifrado de extremo a extremo, consulta este tema.
Configuración del secreto de cifrado
Las sesiones cifradas de extremo a extremo se crean mediante las API del servidor (véase Activación del cifrado mediante la API REST). Para que un cliente de React Native se incorpore a una sesión cifrada de extremo a extremo, configura el encryptionSecret puntal del OTSession componente:
<OTSession
apiKey="api-key"
sessionId="session-id"
token="token"
encryptionSecret="initial-encryption-secret"
>
<OTPublisher />
<OTSubscriber />
</OTSession>
Una contraseña válida es una cadena de entre 8 y 256 caracteres.
Puedes cambiar el secreto configurando el encryptionSecret prop a una propiedad del estado de React y cambiar su valor:
<OTSession
apiKey="api-key"
sessionId="session-id"
token="token"
encryptionSecret={this.state.encryptionSecret}>
>
<OTPublisher />
<OTSubscriber />
</OTSession>
Sucesos y errores
Los eventos y errores son esenciales para gestionar el comportamiento del cifrado dirigido por el usuario. El cifrado de extremo a extremo utiliza el modelo de secreto compartido: se espera que todos los participantes en la sesión utilicen el mismo secreto para cifrar sus medios y descifrar los de los demás.
El OTSubscriber error() se invoca cuando el suscriptor no puede descodificar un flujo de medios debido a un secreto de cifrado no coincidente (o no establecido):
<OTSubscriber
eventHandlers={{
error: event => {
// Show UI notification.
},
}}
>
La sesión OTSession error() La llamada de retorno del controlador de eventos se activa si el cliente intenta conectarse a una sesión cifrada de extremo a extremo que se haya inicializado con un secreto de cifrado no válido (o sin especificar ningún secreto de cifrado). Un secreto válido es una cadena de entre 8 y 256 caracteres. Para garantizar la mejor experiencia de usuario, la aplicación debe detectar un secreto no válido proporcionado por el usuario antes de establecer la OTSession encryptionSecret prop. En el siguiente ejemplo, se inicializa una sesión con un secreto vacío (y, por lo tanto, no válido), lo que provoca un error al intentar conectarse:
<OTSession
apiKey="api-key"
sessionId="session-id"
token="token"
encryptionSecret=""
eventHanders={{
error: event => {
// An error event is dispatched if you set an invalid encryption secret
}
}}
>
<OTPublisher />
<OTSubscriber />
</OTSession>