askarStoreRekey function

Future<AskarCallbackResult> askarStoreRekey(
  1. StoreHandle handle,
  2. String passKey, {
  3. StoreKeyMethod? keyMethod,
})

Implementation

Future<AskarCallbackResult> askarStoreRekey(
  StoreHandle handle,
  String passKey, {
  StoreKeyMethod? keyMethod,
}) async {
  Pointer<Utf8> passKeyPointer = nullptr;
  Pointer<Utf8> keyMethodPointer = nullptr;

  final keyMethodStr = (keyMethod == null) ? "" : keyMethod.value;

  try {
    passKeyPointer = passKey.toNativeUtf8();
    keyMethodPointer = keyMethodStr.toNativeUtf8();

    final callback = newCallbackWithoutHandle();

    final result = nativeAskarStoreRekey(
      handle.toInt(),
      keyMethodPointer,
      passKeyPointer,
      callback.nativeCallable.nativeFunction,
      callback.id,
    );

    return await callback.handleResult(result);
  } finally {
    freePointer(passKeyPointer);
    freePointer(keyMethodPointer);
  }
}