public static Task <(NativeHandle, NativeHandle)> EncGenerateKeyPairAsync() { var tcs = new TaskCompletionSource <(NativeHandle, NativeHandle)>(); EncGenerateKeyPairCb callback = (_, result, encPubKeyH, encSecKeyH) => { if (result.ErrorCode != 0) { tcs.SetException(result.ToException()); return; } tcs.SetResult((new NativeHandle(encPubKeyH, EncPubKeyFreeAsync), new NativeHandle(encSecKeyH, EncSecretKeyFreeAsync))); };
public static Task <Tuple <ulong, ulong> > EncGenerateKeyPairAsync() { var tcs = new TaskCompletionSource <Tuple <ulong, ulong> >(); EncGenerateKeyPairCb callback = null; callback = (pVoid, result, encPubKeyH, encSecKeyH) => { if (result.ErrorCode != 0) { tcs.SetException(result.ToException()); CallbackManager.Unregister(callback); return; } tcs.SetResult(Tuple.Create(encPubKeyH, encSecKeyH)); CallbackManager.Unregister(callback); }; CallbackManager.Register(callback); NativeBindings.EncGenerateKeyPair(Session.AppPtr, Session.UserData, callback); return(tcs.Task); }
public static extern void EncGenerateKeyPairNative(IntPtr appPtr, IntPtr self, EncGenerateKeyPairCb callback);
public void EncGenerateKeyPair(IntPtr appPtr, IntPtr self, EncGenerateKeyPairCb callback) { EncGenerateKeyPairNative(appPtr, self, callback); }
public void EncGenerateKeyPair(IntPtr appPtr, EncGenerateKeyPairCb callback) { EncGenerateKeyPairNative(appPtr, callback.ToHandlePtr(), OnEncGenerateKeyPairCb); }