<div dir="ltr">Thanks for quick reply i did the following command only to put passphrase in cache  ( missed id while writing mail )  got id from <span style="font-family:"Segoe UI";font-size:10.5pt">gpg
--list-secret-keys</span><div> gpg-preset-passphrase -vcP "$pgpPassphrase" <b>00112233445566778898aabvccddeeff  </b><br></div><div><br></div><div>How can I confirm if a passphrase set in the cache ?  is there any debug log which I can see to confirm it.</div><div><br></div><div>Can you share .if possible, any steps how to build windows gpg agent using source code.? Most docs are for linux.</div><div><br></div><div>details for question is here as well</div><div><a href="https://superuser.com/questions/1604539/windows-gpg-is-prompting-for-passphrase-even-though-passphrase-cache-is-set-in">gnupg - windows :GPG is prompting for passphrase even though passphrase cache is set in gpg-agent - Super User</a> </div><div><br></div><div>Thanks</div><div>surender  <br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Nov 23, 2020 at 11:55 PM Werner Koch <<a href="mailto:wk@gnupg.org">wk@gnupg.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Mon, 23 Nov 2020 09:18, surender singh pawar said:<br>
<br>
> 4.      from powershell started agent<br>
><br>
> "$gpgPath\bin\gpg-connect-agent.exe" reloadagent /bye<br>
<br>
Why do you do this?  The import operation already started the agent.  In<br>
any case to explicitly start the agent please use<br>
<br>
  gpgconf --launch gpg-agent<br>
<br>
> "$gpgPath\bin\gpg-preset-passphrase.exe" -v -c -P "$pgpPassphrase"<br>
<br>
You need to add the keygrip to the invocation; from the man page:<br>
<br>
  gpg-preset-passphrase [options] [command] cacheid<br>
<br>
       cacheid is either a 40 character keygrip of hexadecimal<br>
       characters identifying the key for which the passphrase should be<br>
       set or cleared.  The keygrip is listed along with the key when<br>
       running the command: gpgsm --with-keygrip --list-secret-keys.<br>
       Alternatively an arbitrary string may be used to identify a<br>
       passphrase; it is suggested that such a string is prefixed with<br>
       the name of the application (e.g foo:12346).  Scripts should<br>
       always use the option --with-colons, which provides the keygrip<br>
       in a "grp" line (cf. ‘doc/DETAILS’)/<br>
<br>
Thus something like<br>
<br>
  gpg-preset-passphrase -vcP "$pgpPassphrase" 00112233445566778898aabvccddeeff<br>
<br>
You should also review your architecture and the attack tree: Why use a<br>
passphrase at all (with its KDF induced delays) if you put it into a<br>
script.  Better remove the passphrase from the key.<br>
<br>
<br>
Salam-Shalom,<br>
<br>
   Werner<br>
<br>
-- <br>
Die Gedanken sind frei.  Ausnahmen regelt ein Bundesgesetz.<br>
</blockquote></div>