Tested with gnupg 2.0.16 and an empty $GNUPGHOME dir on Debian Lenny:
$ gpg-agent --daemon
$ set GPG_AGENT_INFO ...
$ gpgsm --import x.509-certificate-chain.pem
$ gpgsm --import x.509-secret-key.p12
-> enter passphrase
Test1 - try to sign a file:
$ gpgsm --detach-sign textfile.txt
gpgsm: Das Zertifikat kann nicht zum Signieren benutzt werden
dirmngr[25652]: Fehler beim Ãffnen von
`/home/emanuel/.gnupg/dirmngr_ldapservers.conf': Datei oder Verzeichnis nicht
gefunden
dirmngr[25652]: dauerhaft geladene Zertifikate: 0
dirmngr[25652]: zur Laufzeit zwischengespeicherte Zertifikate: 0
dirmngr[25652]: Die Zwischenspeicherverzeichnisdatei
`/home/emanuel/.gnupg/dirmngr-cache.d/DIR.txt' konnte nicht geöffnet werden:
Datei oder Verzeichnis nicht gefunden
dirmngr[25652]: Das Verzeichnis `/home/emanuel/.gnupg/dirmngr-cache.d' wird erzeugt
dirmngr[25652]: Neue Zwischenspeicherverzeichnisdatei
`/home/emanuel/.gnupg/dirmngr-cache.d/DIR.txt' wurde erzeugt
dirmngr[25652]: Es ist keine CRL fÃŒr den Issuer mit der ID
4E31CEB57DDD4A7B9991AB05507B1ED4293FF952 vorhanden
dirmngr[25652]: Zertifikat wurde zwischengespeichert
dirmngr[25652]: KompatibilitÀtsmodus - Zertifikatkette nicht geprÌft!
dirmngr[25652]: Es ist keine CRL fÃŒr den Issuer mit der ID
7F2A402CBB016A9146D613568C89D3596A4111AA vorhanden
dirmngr[25652]: Zertifikat wurde zwischengespeichert
dirmngr[25652]: KompatibilitÀtsmodus - Zertifikatkette nicht geprÌft!
gpgsm: Das Wurzelzertifikat ist nicht als vertrauenswÃŒrdig markiert
gpgsm: Fingerprint=A6:93:5D:D3:4E:F3:08:79:73:C7:06:FC:31:1A:A2:CC:F7:33:76:5B
gpg-agent[25526]: command marktrusted failed: Nicht unterstÃŒtzt
gpgsm: DBG: BEGIN Certificate `issuer':
gpgsm: DBG: serial: 00
gpgsm: DBG: notBefore: 2003-06-28 14:47:37
gpgsm: DBG: notAfter: 2013-06-27 14:47:37
gpgsm: DBG: issuer: CN=Wurzel ZS 3,O=Intevation GmbH,C=DE
gpgsm: DBG: subject: CN=Wurzel ZS 3,O=Intevation GmbH,C=DE
gpgsm: DBG: hash algo: 1.2.840.113549.1.1.4
gpgsm: DBG: SHA1 Fingerprint:
A6:93:5D:D3:4E:F3:08:79:73:C7:06:FC:31:1A:A2:CC:F7:33:76:5B
gpgsm: DBG: END Certificate
gpgsm: after checking the fingerprint, you may want to add it manually to the
list of trusted certificates.
gpgsm: Interaktives vertrauenswÃŒrdig-Markieren ist in gpg-agent ausgeschaltet
gpgsm: error creating signature: Nicht vertrauenswÃŒrdig <GPG Agent>
dirmngr[25652]: LDAP Wrapper 25654 fertig
dirmngr[25652]: LDAP Wrapper 25653 fertig
Set allow-mark-trusted option of gpg-agent via gpgconf:
$ echo 'allow-mark-trusted:0:1'|gpgconf --runtime --change-options gpg-agent
gpg-agent:GPG Agent:/usr/bin/gpg-agent:1:1:
gpg-agent[25526]: SIGHUP received - re-reading configuration and flushing cache
> ~/.gnupg/gpg-agent.conf with "allow-mark-trusted" created. Ok.
Test 2 - try to sign a file again:
$ gpgsm --detach-sign textfile.txt
gpgsm: Das Zertifikat kann nicht zum Signieren benutzt werden
dirmngr[25660]: Fehler beim Ãffnen von
`/home/emanuel/.gnupg/dirmngr_ldapservers.conf': Datei oder Verzeichnis nicht
gefunden
dirmngr[25660]: dauerhaft geladene Zertifikate: 0
dirmngr[25660]: zur Laufzeit zwischengespeicherte Zertifikate: 0
gpgsm: Das Wurzelzertifikat ist nicht als vertrauenswÃŒrdig markiert
gpgsm: Fingerprint=A6:93:5D:D3:4E:F3:08:79:73:C7:06:FC:31:1A:A2:CC:F7:33:76:5B
gpg-agent[25526]: command marktrusted failed: Nicht unterstÃŒtzt
gpgsm: DBG: BEGIN Certificate `issuer':
gpgsm: DBG: serial: 00
gpgsm: DBG: notBefore: 2003-06-28 14:47:37
gpgsm: DBG: notAfter: 2013-06-27 14:47:37
gpgsm: DBG: issuer: CN=Wurzel ZS 3,O=Intevation GmbH,C=DE
gpgsm: DBG: subject: CN=Wurzel ZS 3,O=Intevation GmbH,C=DE
gpgsm: DBG: hash algo: 1.2.840.113549.1.1.4
gpgsm: DBG: SHA1 Fingerprint:
A6:93:5D:D3:4E:F3:08:79:73:C7:06:FC:31:1A:A2:CC:F7:33:76:5B
gpgsm: DBG: END Certificate
gpgsm: after checking the fingerprint, you may want to add it manually to the
list of trusted certificates.
gpgsm: Interaktives vertrauenswÃŒrdig-Markieren ist in gpg-agent ausgeschaltet
gpgsm: error creating signature: Nicht vertrauenswÃŒrdig <GPG Agent>
> Signing failed.
Expected: Allow-mark-trusted pinentry dialog should ask for do root certificate
trustable. After that: signing files should work.
Note:
This is the same problem in gpg4win 2.1.0-beta1. Kleopatra runs:
gpgconf.exe --runtime --change-options gpg-agent and
gpgconf.exe --runtime --change-options dirmngr
after user has enabled allow-mark-trusted option via Kleopatra gpgconf dialog.
But gpg-agent wasn't restart. If user kill gpg-agent process and restart
gpg-agent allow-mark-trusted pinentry comes up.
So it seems to be a problem with gpgconf?!