EncryptionResult.fromSerialized constructor

EncryptionResult.fromSerialized(
  1. String serializedPayload
)

Decode a serialized encrypted string into its components.

Implementation

EncryptionResult.fromSerialized(String serializedPayload) {
  final decomposedPayload = serializedPayload.split(".");
  // Payload should contain the following parts:
  // 0. strategy: a [EncryptionStrategy]
  // 1. cipher text: a base64url encoded [Uint8List]
  // 2. serialised encryption artefacts: a string
  // 3. key derivation strategy name: a string (optional)
  // 4. serialised derivation artefacts: a string (optional)
  if (!(decomposedPayload.length == 3 || decomposedPayload.length == 5)) {
    throw Exception(
        'Serialised encryption should contain 3 or 5 parts, depending on key derivation');
  }
  strategy = encryptionStrategyFromString(decomposedPayload[0]);
  this.cipherText = base64Url.decode(decomposedPayload[1]);
  this.encryptionArtefacts =
      EncryptionArtefacts.fromSerialized(decomposedPayload[2]);
  if (decomposedPayload.length == 5) {
    this.derivationArtefacts = DerivationArtefacts.fromSerialized(
        '${decomposedPayload[3]}.${decomposedPayload[4]}');
  }
}