create static method

Future<BaseKeyProvider> create({
  1. bool sharedKey = true,
  2. String? ratchetSalt,
  3. String? uncryptedMagicBytes,
  4. int? ratchetWindowSize,
  5. int? failureTolerance,
  6. int? keyRingSize,
  7. bool? discardFrameWhenCryptorNotReady,
})

Implementation

static Future<BaseKeyProvider> create({
  bool sharedKey = true,
  String? ratchetSalt,
  String? uncryptedMagicBytes,
  int? ratchetWindowSize,
  int? failureTolerance,
  int? keyRingSize,
  bool? discardFrameWhenCryptorNotReady,
}) async {
  final rtc.KeyProviderOptions options = rtc.KeyProviderOptions(
    sharedKey: sharedKey,
    ratchetSalt: Uint8List.fromList((ratchetSalt ?? defaultRatchetSalt).codeUnits),
    ratchetWindowSize: ratchetWindowSize ?? defaultRatchetWindowSize,
    uncryptedMagicBytes: Uint8List.fromList((uncryptedMagicBytes ?? defaultMagicBytes).codeUnits),
    failureTolerance: failureTolerance ?? defaultFailureTolerance,
    keyRingSize: keyRingSize ?? defaultKeyRingSize,
    discardFrameWhenCryptorNotReady: discardFrameWhenCryptorNotReady ?? defaultDiscardFrameWhenCryptorNotReady,
  );
  final keyProvider = await rtc.frameCryptorFactory.createDefaultKeyProvider(options);
  return BaseKeyProvider(keyProvider, options);
}