cryptoBoxSealOpen static method

Uint8List cryptoBoxSealOpen(
  1. Uint8List c,
  2. Uint8List pk,
  3. Uint8List sk
)

Implementation

static Uint8List cryptoBoxSealOpen(Uint8List c, Uint8List pk, Uint8List sk) {
  RangeError.checkValueInInterval(pk.length, cryptoBoxPublickeybytes,
      cryptoBoxPublickeybytes, 'pk', 'Invalid length');
  RangeError.checkValueInInterval(sk.length, cryptoBoxSecretkeybytes,
      cryptoBoxSecretkeybytes, 'sk', 'Invalid length');

  final _m = calloc<Uint8>(c.length - cryptoBoxSealbytes);
  final _c = c.toPointer();
  final _pk = pk.toPointer();
  final _sk = sk.toPointer();

  try {
    _cryptoBox
        .crypto_box_seal_open(_m, _c, c.length, _pk, _sk)
        .mustSucceed('crypto_box_seal_open');

    return _m.toList(c.length - cryptoBoxSealbytes);
  } finally {
    calloc.free(_m);
    calloc.free(_c);
    calloc.free(_pk);
    calloc.free(_sk);
  }
}