public static extern void EncryptSealedBoxNative( IntPtr appPtr, IntPtr data, IntPtr len, ulong pkHandle, IntPtr self, EncryptSealedBoxCb callback);
public static Task <List <byte> > EncryptSealedBoxAsync(List <byte> inputData, ulong pkHandle) { var tcs = new TaskCompletionSource <List <byte> >(); var inputDataPtr = inputData.ToIntPtr(); EncryptSealedBoxCb callback = null; callback = (self, result, dataPtr, dataLen) => { if (result.ErrorCode != 0) { tcs.SetException(result.ToException()); CallbackManager.Unregister(callback); return; } var data = dataPtr.ToList <byte>(dataLen); tcs.SetResult(data); CallbackManager.Unregister(callback); }; CallbackManager.Register(callback); NativeBindings.EncryptSealedBox(Session.AppPtr, inputDataPtr, (IntPtr)inputData.Count, pkHandle, Session.UserData, callback); // Marshal.FreeHGlobal(inputDataPtr); return(tcs.Task); }
public void EncryptSealedBox(IntPtr appPtr, IntPtr data, IntPtr len, ulong pkHandle, IntPtr self, EncryptSealedBoxCb callback) { EncryptSealedBoxNative(appPtr, data, len, pkHandle, self, callback); }