Chiffrement de bout en bout

Cette rubrique contient des informations détaillées sur l'utilisation du chiffrement de bout en bout dans le Vonage Client SDK pour React Native :

Pour une présentation générale du chiffrement de bout en bout, consultez ce sujet.

Configuration de la clé de chiffrement

Les sessions chiffrées de bout en bout sont créées à l'aide des API du serveur (voir Activation du chiffrement à l'aide de l'API REST). Pour qu'un client React Native rejoigne une session chiffrée de bout en bout, définissez la propriété encryptionSecret prop de la OTSession de la composante :

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

Un secret valide est une chaîne de 8 à 256 caractères.

Vous pouvez modifier le secret en réglant le paramètre encryptionSecret à une propriété de l'état React et de changer sa valeur :

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

Événements et erreurs

Les événements et les erreurs sont essentiels pour gérer le comportement du chiffrement piloté par l'utilisateur. Le chiffrement de bout en bout utilise le modèle du secret partagé : tous les participants à la session sont censés utiliser le même secret pour chiffrer leurs données et déchiffrer celles des autres.

L'OTSubscriber error() est invoqué lorsque l'abonné n'est pas en mesure de décoder les médias d'un flux en raison d'un secret de cryptage non adapté (ou non défini) :

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

L'OTSession error() La fonction de rappel de gestionnaire d'événement est appelée si le client tente de se connecter à une session chiffrée de bout en bout qui a été initialisée avec un secret de chiffrement non valide (ou sans spécification de secret de chiffrement). Un secret valide est une chaîne de caractères comprise entre 8 et 256 caractères. Pour offrir la meilleure expérience utilisateur possible, l’application doit détecter un secret invalide fourni par l’utilisateur avant de configurer l’objet OTSession. encryptionSecret prop. Dans l'exemple suivant, une session est initialisée avec un secret vide (et donc invalide), ce qui provoque une erreur lors de la tentative de connexion :

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