encode method

  1. @override
Future<String> encode({
  1. required String topic,
  2. required Object payload,
  3. CryptoEncodeOptions? opts,
})
override

Implementation

@override
Future<String> encode({
  required String topic,
  required Object payload,
  CryptoEncodeOptions? opts,
}) async {
  _isInitialized();
  final params = utils.validateEncoding(opts);
  final message = jsonEncode(payload);
  if (utils.isTypeOneEnvelope(params)) {
    final selfPublicKey = params.senderPublicKey!;
    final peerPublicKey = params.receiverPublicKey!;
    topic = await generateSharedKey(
      selfPublicKey: selfPublicKey,
      peerPublicKey: peerPublicKey,
    );
  }
  final symKey = _getSymKey(topic);
  final result = utils.encrypt(
    type: params.type,
    symKey: symKey,
    message: message,
    senderPublicKey: params.senderPublicKey,
  );
  return result;
}