예제 #1
0
파일: Crypto.cs 프로젝트: arlm/safe_mobile
        public static Task <List <byte> > EncPubKeyGetAsync(ulong encPubKeyH)
        {
            var            tcs      = new TaskCompletionSource <List <byte> >();
            EncPubKeyGetCb callback = null;

            callback = (pVoid, result, encPubKeyPtr) => {
                if (result.ErrorCode != 0)
                {
                    tcs.SetException(result.ToException());
                    CallbackManager.Unregister(callback);
                    return;
                }

                tcs.SetResult(encPubKeyPtr.ToList <byte>((IntPtr)KeyLen));
                CallbackManager.Unregister(callback);
            };

            CallbackManager.Register(callback);
            NativeBindings.EncPubKeyGet(Session.AppPtr, encPubKeyH, Session.UserData, callback);

            return(tcs.Task);
        }
예제 #2
0
 public static extern void EncPubKeyGetNative(IntPtr appPtr, ulong encryptPubKeyHandle, IntPtr self, EncPubKeyGetCb callback);
예제 #3
0
 public void EncPubKeyGet(IntPtr appPtr, ulong encryptPubKeyHandle, IntPtr self, EncPubKeyGetCb callback)
 {
     EncPubKeyGetNative(appPtr, encryptPubKeyHandle, self, callback);
 }