Setting the encryption secret

エンドツーエンドの暗号化セッションは、サーバーAPIを使用して作成されます。 REST API).

クライアントがパブリッシュまたはサブスクライブする前に Session.setEncryptionSecret() メソッドを使用する:

session.setEncryptionSecret("encryption-secret");
session.connect(TOKEN);

有効な秘密は8文字以上256文字以下の文字列である。シークレットを変更するには Session.setEncryptionSecret() 関数を再び使用する。

無効なシークレットを設定すると InvalidEncryptionSecret エラー。

Events and errors

イベントとエラーは、ユーザー主導の暗号化の動作を管理するために不可欠である。エンドツーエンドの暗号化は、共有秘密モデルを使用します。セッション内の全員が、自分のメディアを暗号化し、他の全員のメディアを復号化するために、同じ秘密を使用することが期待されています。

クライアントが暗号化シークレットを設定せずにエンドツーエンドで暗号化されたセッションに接続しようとすると SessionListener.onError() イベントハンドラは、エラーコードを ErrorCode.EncryptionSecretMissing:

// Implementation of SessionListener.onError():
@Override
public void onError(Session session, OpentokError opentokError) {
  if (opentokError.getErrorCode() == ErrorCode.EncryptionSecretMissing) {
    // Notify the user that they cannot join the session
  }
}

session.connect(token)を呼び出す; 暗号化シークレットを指定せずにエンドツーエンドで暗号化されたセッションを公開しようとすると Session.publish() メソッドの結果は PublisherListener.onError() イベント・ハンドラが、ErrorCode.EncryptionSecretMissing に設定されたエラーで呼び出された場合。最良のユーザーエクスペリエンスを得るためには、アプリケーションは Session.publish() メソッドを使用する:

// Implementation of PublisherListener.onError():
@Override
public void onError(PublisherKit publisher, OpentokError opentokError) {
  if (opentokError.getErrorCode() == ErrorCode.EncryptionInternalError) {
    // The application should communicate that the secret was not set.
  }
}
session.publish(publisher);

不正確な暗号化シークレットのために、加入者がストリームのメディアをデコードできない場合は SubscriberListener.onError() イベントハンドラは、ErrorCodeに設定されたエラーで呼び出される。EncryptionSecretMismatch.メディアを受信できないのは、暗号化の不一致によるものであり、接続障害やオーディオ/ビデオの問題ではないことをユーザーに伝えることが重要です:

// Implementation of Subscriber.onError():
@Override
public void onError(SubscriberKit publisher, OpentokError opentokError) {
  if (opentokError.getErrorCode() == ErrorCode.EncryptionSecretMismatch) {
    // Activate a UI element communicating that there's been an encryption secret mismatch.
  }
}

session.subscribe(subscriber); アプリケーションが暗号化シークレットを設定せずにサブスクライブしようとすると Subscriber.onError() イベント・ハンドラがエラーで呼び出され、そのコードは次のように設定されている。 ErrorCode.EncryptionSecretMissing.

サブスクライバーがパケットを復号化する際に内部エラーが発生した場合 Subscriber.onError() イベント・ハンドラがエラーで呼び出され、そのコードは次のように設定されている。 ErrorCode.DecryptionInternalError.