askarKeyGenerate function

AskarResult<LocalKeyHandle> askarKeyGenerate(
  1. KeyAlgorithm alg,
  2. KeyBackend keyBackend,
  3. bool ephemeral
)

Implementation

AskarResult<LocalKeyHandle> askarKeyGenerate(
  KeyAlgorithm alg,
  KeyBackend keyBackend,
  bool ephemeral,
) {
  Pointer<NativeLocalKeyHandle> localKeyHandlePointer = calloc<NativeLocalKeyHandle>();

  Pointer<Utf8> algPointer = nullptr;
  Pointer<Utf8> keyBackendPointer = nullptr;

  try {
    algPointer = alg.value.toNativeUtf8();
    keyBackendPointer = keyBackend.value.toNativeUtf8();

    final funcResult = nativeAskarKeyGenerate(
      algPointer,
      keyBackendPointer,
      boolToInt(ephemeral),
      localKeyHandlePointer,
    );

    final errorCode = ErrorCode.fromInt(funcResult);

    final localKeyHandle = LocalKeyHandle.fromPointer(errorCode, localKeyHandlePointer);

    return AskarResult<LocalKeyHandle>(errorCode, localKeyHandle);
  } finally {
    freePointer(localKeyHandlePointer);
    freePointer(algPointer);
    freePointer(keyBackendPointer);
  }
}