エンド・ツー・エンドの暗号化
このトピックでは、React Native 向けの Vonage Video Client SDK におけるエンドツーエンド暗号化の使用方法について詳しく説明しています:
エンドツーエンド暗号化の概要については、以下を参照してください。 本題.
暗号化シークレットの設定
エンドツーエンド暗号化されたセッションは、サーバーAPIを使用して作成されます(参照: REST APIを使用して暗号化を有効にする).React Nativeクライアントがエンドツーエンドの暗号化セッションに参加するには encryptionSecret の支柱である。 OTSession コンポーネントを使用している:
<OTSession
apiKey="api-key"
sessionId="session-id"
token="token"
encryptionSecret="initial-encryption-secret"
>
<OTPublisher />
<OTSubscriber />
</OTSession>
有効な秘密は8文字以上256文字以下の文字列である。
を設定することでシークレットを変更できます。 encryptionSecret プロパティをReactステートのプロパティに指定し、その値を変更します:
<OTSession
apiKey="api-key"
sessionId="session-id"
token="token"
encryptionSecret={this.state.encryptionSecret}>
>
<OTPublisher />
<OTSubscriber />
</OTSession>
イベントとエラー
イベントとエラーは、ユーザー主導の暗号化の動作を管理するために不可欠である。エンドツーエンドの暗号化は、共有秘密モデルを使用します。セッション内の全員が、自分のメディアを暗号化し、他の全員のメディアを復号化するために、同じ秘密を使用することが期待されています。
OTSubscriber error() イベントハンドラーコールバックは、暗号化シークレットの不一致(または未設定)が原因でサブスクライバーがストリームのメディアをデコードできないときに呼び出される:
<OTSubscriber
eventHandlers={{
error: event => {
// Show UI notification.
},
}}
>
OTSession error() クライアントが、無効な暗号化シークレット(または暗号化シークレットを指定せずに)で初期化されたエンドツーエンド暗号化セッションに接続しようとすると、イベントハンドラのコールバックが呼び出されます。 有効なシークレットは、8文字から256文字の文字列です。最適なユーザー体験を実現するため、アプリケーションは、OTSessionを設定する前に、ユーザーが指定した無効なシークレットを捕捉する必要があります。 encryptionSecret prop。次の例では、空の(したがって無効な)シークレットを使用してセッションが初期化されているため、接続を試みるとエラーが発生します:
<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>