summaryrefslogtreecommitdiff
path: root/doc/bugs/gpg_needs_--use-agent.mdwn
blob: d9977909ba4136aaf2b762fb138282186ec01188 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
git-annex gpg encryption fails here when GPG_AGENT_INFO is set, it needs to be supplied --use-agent to work.

Output from git-annex:

    copy file (to origin...) (gpg) gpg: can't query passphrase in batch mode
    gpg: decryption failed: secret key not available
    Command gpg ["--batch","--no-tty","--quiet","--trust-model","always","--decrypt"] failed; exit code 2
    
    git-annex: user error (Command gpg ["--batch","--no-tty","--quiet","--trust-model","always","--decrypt"] failed; exit code 2)
    failed

Reproduced on command-line:

    [0 zerodogg@browncoats ~]$ echo test > testfile
    [0 zerodogg@browncoats ~]$ gpg -e testfile
    [0 zerodogg@browncoats ~]$ gpg --batch --no-tty --quiet --trust-model always --decrypt testfile.gpg 
    gpg: can't query passphrase in batch mode
    gpg: decryption failed: secret key not available
    [2 zerodogg@browncoats ~]$ gpg --use-agent --batch --no-tty --quiet --trust-model always --decrypt testfile.gpg
    test
    [0 zerodogg@browncoats ~]$ 

A patch to fix this issue:


    From 77cb02d15245e9ad6e127388adcda960000fb3b8 Mon Sep 17 00:00:00 2001
    From: Eskild Hustvedt <code@zerodogg.org>
    Date: Fri, 17 Aug 2012 09:21:44 +0200
    Subject: [PATCH] Explicitly enable agent to ensure decryption works
    
    Otherwise gpg will fail when GPG_AGENT_INFO is set in certain cases.
    ---
     Utility/Gpg.hs |    2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/Utility/Gpg.hs b/Utility/Gpg.hs
    index e13afe5..c28b209 100644
    --- a/Utility/Gpg.hs
    +++ b/Utility/Gpg.hs
    @@ -29,7 +29,7 @@ stdParams params = do
        b <- getEnv "GPG_BATCH"
        let batch = if isNothing e && isNothing b
            then []
    -       else ["--batch", "--no-tty"]
    +       else ["--batch", "--no-tty", "--use-agent"]
        return $ batch ++ defaults ++ toCommand params
        where
            -- be quiet, even about checking the trustdb
    -- 
    1.7.10.4

> Thanks, [[done]].. I never noticed this since I have use-agent set in
> gpg.conf. --[[Joey]