askarKeyFromSecretBytes function

AskarResult<LocalKeyHandle> askarKeyFromSecretBytes(
  1. KeyAlgorithm algorithm,
  2. Uint8List secret
)

Implementation

AskarResult<LocalKeyHandle> askarKeyFromSecretBytes(
  KeyAlgorithm algorithm,
  Uint8List secret,
) {
  Pointer<NativeLocalKeyHandle> localKeyHandlePtr = calloc<NativeLocalKeyHandle>();

  Pointer<Utf8> algPointer = nullptr;
  Pointer<NativeByteBuffer> byteBufferPointer = nullptr;

  try {
    algPointer = algorithm.value.toNativeUtf8();
    byteBufferPointer = bytesListToByteBuffer(secret);

    final funcResult = nativeAskarKeyFromSecretBytes(
      algPointer,
      byteBufferPointer.ref,
      localKeyHandlePtr,
    );

    final errorCode = ErrorCode.fromInt(funcResult);

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

    return AskarResult<LocalKeyHandle>(errorCode, localKeyHandle);
  } finally {
    freePointer(localKeyHandlePtr);
    freePointer(algPointer);
    freeByteBufferPointer(byteBufferPointer);
  }
}