decode method

  1. @override
Future<String> decode(
  1. String topic,
  2. String encoded, {
  3. DecodeOptions? options,
})
override

Implementation

@override
Future<String> decode(
  String topic,
  String encoded, {
  DecodeOptions? options,
}) async {
  _checkInitialized();

  EncodingValidation params;
  if (options == null) {
    params = utils!.validateDecoding(
      encoded,
    );
  } else {
    params = utils!.validateDecoding(
      encoded,
      receiverPublicKey: options.receiverPublicKey,
    );
  }

  if (utils!.isTypeOneEnvelope(params)) {
    final String selfPublicKey = params.senderPublicKey!;
    final String peerPublicKey = params.receiverPublicKey!;
    topic = await generateSharedKey(selfPublicKey, peerPublicKey);
  }
  final String symKey = _getSymKey(topic);
  final String message = await utils!.decrypt(symKey, encoded);

  return message;
}