deserialize function

CryptoEncodingParams deserialize(
  1. String encoded
)

Implementation

CryptoEncodingParams deserialize(String encoded) {
  final bytes = Uint8List.fromList(base64.decode(encoded));
  final type = bytes.sublist(ZERO_INDEX, TYPE_LENGTH);
  final slice1 = TYPE_LENGTH;
  if (decodeTypeByte(type) == TYPE_1) {
    final slice2 = slice1 + KEY_LENGTH;
    final slice3 = slice2 + IV_LENGTH;
    final senderPublicKey = bytes.sublist(slice1, slice2);
    final iv = bytes.sublist(slice2, slice3);
    final sealed = bytes.sublist(slice3);
    return CryptoEncodingParams(
      type: type,
      sealed: sealed,
      iv: iv,
      senderPublicKey: senderPublicKey,
    );
  }
  // default to type 0 envelope
  final slice2 = slice1 + IV_LENGTH;
  final iv = bytes.sublist(slice1, slice2);
  final sealed = bytes.sublist(slice2);
  return CryptoEncodingParams(
    type: type,
    sealed: sealed,
    iv: iv,
  );
}