Criptografia de ponta a ponta

Este tópico traz detalhes sobre como usar a criptografia de ponta a ponta no Client SDK do cliente Vonage Video para React Native:

Para obter uma visão geral da criptografia de ponta a ponta, consulte esse assunto.

Configurando o segredo de criptografia

As sessões com criptografia de ponta a ponta são criadas por meio de APIs do servidor (consulte Ativando a criptografia por meio da API REST). Para que um cliente React Native participe de uma sessão com criptografia de ponta a ponta, defina o encryptionSecret adereço do OTSession componente:

<OTSession
  apiKey="api-key"
  sessionId="session-id"
  token="token"
  encryptionSecret="initial-encryption-secret"
>
  <OTPublisher />
  <OTSubscriber />
</OTSession>

Um segredo válido é uma sequência de caracteres com comprimento entre 8 e 256 caracteres.

Você pode alterar o segredo definindo o encryptionSecret atribuir um valor a uma propriedade do estado do React e alterar esse valor:

<OTSession
  apiKey="api-key"
  sessionId="session-id"
  token="token"
  encryptionSecret={this.state.encryptionSecret}>
>
  <OTPublisher />
  <OTSubscriber />
</OTSession>

Eventos e erros

Eventos e erros são essenciais para gerenciar o comportamento da criptografia orientada pelo usuário. A criptografia de ponta a ponta utiliza o modelo de segredo compartilhado: espera-se que todos os participantes da sessão utilizem o mesmo segredo para criptografar seus dados e descriptografar os dados dos demais participantes.

O OTSubscriber error() A função de retorno do manipulador de eventos é invocada quando o assinante não consegue decodificar a mídia de um fluxo devido a um segredo de criptografia incompatível (ou não definido):

  <OTSubscriber
    eventHandlers={{
      error: event => {
        // Show UI notification.
      },
    }}
  >

A OTSession error() O callback do manipulador de eventos é acionado se o cliente tentar se conectar a uma sessão criptografada de ponta a ponta que tenha sido inicializada com um segredo de criptografia inválido (ou sem a especificação de um segredo de criptografia). Um segredo válido é uma sequência de caracteres com 8 a 256 caracteres. Para garantir a melhor experiência do usuário, o aplicativo deve detectar um segredo inválido fornecido pelo usuário antes de definir a OTSession encryptionSecret prop. No exemplo a seguir, uma sessão é inicializada com um segredo vazio (e, portanto, inválido), o que gera um erro ao tentar se conectar:

<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>