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>