EncryptionResult.fromSerialized constructor
EncryptionResult.fromSerialized(
- 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]}');
}
}