コード例 #1
0
ファイル: Crypto.cs プロジェクト: arlm/safe_mobile
        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);
        }
コード例 #2
0
 public static extern void EncPubKeyNewNative(IntPtr appPtr, IntPtr asymPublicKey, IntPtr self, EncPubKeyNewCb callback);
コード例 #3
0
 public void EncPubKeyNew(IntPtr appPtr, IntPtr asymPublicKey, IntPtr self, EncPubKeyNewCb callback)
 {
     EncPubKeyNewNative(appPtr, asymPublicKey, self, callback);
 }