withSharedSecret<T> function

T withSharedSecret<T>({
  1. required Uint8List privateKey,
  2. required Uint8List peerPublicKey,
  3. required T fn(
    1. Uint8List ss
    ),
  4. required Uint8List derive({
    1. required Uint8List peerPublicKey,
    2. required Uint8List privateKey,
    }),
})

Implementation

T withSharedSecret<T>({
  required Uint8List privateKey,
  required Uint8List peerPublicKey,
  required T Function(Uint8List ss) fn,
  required Uint8List Function({
    required Uint8List privateKey,
    required Uint8List peerPublicKey,
  }) derive,
}) {
  final ss = derive(privateKey: privateKey, peerPublicKey: peerPublicKey);
  try {
    return fn(ss);
  } finally {
    zeroize(ss);
  }
}