call method
Implementation
Uint8List call(String name, Uint8List payload) {
if (_bridgeCall == null) {
throw OpenPGPException(
"FFI function ${_callFuncName} is not initialized. Check library loading.");
}
final namePointer = name.toNativeUtf8();
final payloadPointer = malloc.allocate<Uint8>(payload.length);
payloadPointer.asTypedList(payload.length).setAll(0, payload);
final result =
_bridgeCall(namePointer, payloadPointer.cast<Void>(), payload.length);
if (result.address == 0) {
throw OpenPGPException(
"FFI function ${_callFuncName} returned null pointer. Check openpgp-mobile implementation.");
}
malloc.free(namePointer);
malloc.free(payloadPointer);
handleError(result.ref.errorMessage, result);
final output = result.ref.toUint8List();
freeResult(result);
return output;
}