public static Task <ulong> EncPubKeyNewAsync(List <byte> asymPublicKeyBytes) { var tcs = new TaskCompletionSource <ulong>(); var asymPublicKeyPtr = asymPublicKeyBytes.ToIntPtr(); EncPubKeyNewCb callback = null; callback = (self, result, encryptPubKeyHandle) => { if (result.ErrorCode != 0) { tcs.SetException(result.ToException()); CallbackManager.Unregister(callback); return; } tcs.SetResult(encryptPubKeyHandle); CallbackManager.Unregister(callback); }; CallbackManager.Register(callback); NativeBindings.EncPubKeyNew(Session.AppPtr, asymPublicKeyPtr, Session.UserData, callback); // Marshal.FreeHGlobal(asymPublicKeyPtr); return(tcs.Task); }
public static extern void EncPubKeyNewNative(IntPtr appPtr, IntPtr asymPublicKey, IntPtr self, EncPubKeyNewCb callback);
public void EncPubKeyNew(IntPtr appPtr, IntPtr asymPublicKey, IntPtr self, EncPubKeyNewCb callback) { EncPubKeyNewNative(appPtr, asymPublicKey, self, callback); }