keybase / keybase/keybase-issues

Cannot delete expired private key

Open
#4,077 3 comments 1 reaction 0 assignees View on GitHub
Dominant language
No language data
Stars
899
Forks
40
PR merge metrics
No merged PRs in 30d

Description

**Update: Solved, kinda. See below, https://github.com/keybase/keybase-issues/issues/4077#issuecomment-1104421318**

Oops, I let a key expire. I thought I updated it, but I wanged it up by not updating the subkey. I was able to update the expiration (but notably, only with the keybase app, and not in-browser and not with curl | bash).

My current public key is https://keybase.io/todb/pgp_keys.asc?fingerprint=59ef1b30a8fa5a7440ebc08908b5b91dc85943fe

GPG interprets this (correctly):

```
pub rsa4096 2016-06-30 [SC] [expires: 2071-10-31]
59EF1B30A8FA5A7440EBC08908B5B91DC85943FE
uid [ unknown] Tod Beardsley
uid [ unknown] Tod Beardsley (Replaces 0xEA19CAAC)
uid [ unknown] Tod Beardsley
uid [ unknown] Tod Beardsley
sub rsa4096 2016-06-30 [E] [expires: 2071-10-31]
```

But now, I don't think I can do anything private-keyish on Keybase, including "Delete Private Key":

![image](https://user-images.githubusercontent.com/1170909/141512684-58d0e2a2-ed12-4258-b8c7-afe12a9dbb70.png)

```
{"code":100,"desc":"missing non-optional field kid","fields":{"kid":"missing non-optional field kid"},"name":"INPUT_ERROR"}
```

I also can't sign messages in the web ui, I get an error, `Error: no valid primary key self-signature or key(s) have expired`.

So, right now, I'm out of the private-key-on-keybase business, so kinda stuck in the worst of both worlds -- Keybase has my private key (and can trivially unexpire it and sell it to the Mafia), but I cannot use it conveniently on Keybase. :(

I imagine I'll have to reset my proofs and generate up a new keypair. What would be better would be either:

- Allow users to unexpire their private keys
- Notify users with increasing alarm when private keys are nearing expiration

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the web UI's “Delete Private Key” flow and the signing path described in the report, comparing them with the Keybase app behavior. Reproduce the expired-key errors if possible and determine whether private-key operations work consistently; done means the affected operation completes or the user receives a clear, actionable error.

Written by the indexing model from the issue text.

Assessment

Domain
cryptography, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.