/// <summary> /// Creates a master secret with the specified name and stores it in the provided wallet. /// </summary> /// <remarks> /// The name of the master secret must be unique within the wallet. /// </remarks> /// <param name="wallet">The target wallet.</param> /// <param name="masterSecretName">The name of the master secret.</param> /// <returns>An asynchronous <see cref="Task"/> that completes when the operation has completed.</returns> public static Task ProverCreateMasterSecretAsync(Wallet wallet, string masterSecretName) { var taskCompletionSource = new TaskCompletionSource <bool>(); var commandHandle = PendingCommands.Add(taskCompletionSource); var commandResult = IndyNativeMethods.indy_prover_create_master_secret( commandHandle, wallet.Handle, masterSecretName, CallbackHelper.TaskCompletingNoValueCallback ); CallbackHelper.CheckResult(commandResult); return(taskCompletionSource.Task); }