Exemplo n.º 1
0
 public static extern void EncryptSealedBoxNative(
     IntPtr appPtr,
     IntPtr data,
     IntPtr len,
     ulong pkHandle,
     IntPtr self,
     EncryptSealedBoxCb callback);
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 public void EncryptSealedBox(IntPtr appPtr, IntPtr data, IntPtr len, ulong pkHandle, IntPtr self, EncryptSealedBoxCb callback)
 {
     EncryptSealedBoxNative(appPtr, data, len, pkHandle, self, callback);
 }