deserializeKey method

  1. @override
Future<SymmetricKey?> deserializeKey(
  1. Uint8List? key,
  2. SecureMessage sMsg
)
override

Deserializes symmetric key from binary data (Step 3).

Converts serialized key data back to a SymmetricKey object. If key is null, retrieves the reused key from cache (for broadcast/reused keys).

Parameters:

  • key : Serialized binary data of the symmetric key (null for reused keys)
  • sMsg : Parent secure message object (context)

Returns: Deserialized symmetric key (null if key is invalid/missing)

Implementation

@override
Future<SymmetricKey?> deserializeKey(Uint8List? key, SecureMessage sMsg) async {
  if (key == null) {
    // get key from cache with direction: sender -> receiver(group)
    return await getDecryptKey(sMsg);
  }
  SymmetricKey? password = await super.deserializeKey(key, sMsg);
  // cache decrypt key when success
  if (password != null) {
    // cache the key with direction: sender -> receiver(group)
    await cacheDecryptKey(password, sMsg);
  }
  return password;
}