keybase / keybase/keybase-issues

Force pull secret key doesn't overwrite in gpg keyring

Open
#210 7 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
899
Forks
40
PR merge metrics
No merged PRs in 30d

Description

`-f, --force force repull from server even if it's already stored locally`

Key downloads, but import fails with gpg complaining that it already has the secret key and so it's leaving it unchanged.

```
debug: Check key secret: {"remote":true,"local":true}
debug: Check key public: {"remote":true,"local":true}
debug: -- KeyPull::load_user -> null 1
debug: ++ KeyPull::secret_pull
Your keybase login passphrase (to pull your private key from the server): *
- run scrypt [==================================] 100%
debug: || Save key /################ to master keyring
debug: || Call to gpg: { args: [ '--import', '--import-options', 'import-local-sigs' ],
debug: stdin: '',
debug: quiet: true,
debug: secret: true }
warn: gpg: key ########: already in secret keyring
warn: gpg: Total number processed: 1
warn: gpg: secret keys read: 1
warn: gpg: secret keys unchanged: 1
error: `gpg` exited with code 2
```

butlertron-osx:src litui$ gpg --version
gpg (GnuPG/MacGPG2) 2.0.22
libgcrypt 1.5.3

butlertron-osx:src litui$ keybase --version
0.0.34

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the `-f, --force` key-pull path and the `gpg --import --import-options import-local-sigs` invocation shown in the report; reproduce it with GnuPG 2.0.22 and keybase 0.0.34. Done means a forced repull can replace the existing secret key in the local keyring without the import failing or leaving it unchanged.

Written by the indexing model from the issue text.

Assessment

Domain
cryptography, security
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.