keybase / keybase/client

Cannot add multiple PGP keys (Base64 error)

Open
#8,772 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
9.2k
Forks
1.3k
Avg merge
12h 58m
Merged PRs (30d)
56

Description

What is the correct process for adding another PGP key? (on website with command line commands)

I tried to just select "update my key" paste my current key and the public key of another key.
I could continue and got this command:

curl \
  --data-urlencode sig="`\
   echo '{"body":{"key":{"eldest_kid":"0101f8e0993c69511b515baf988e36c1a20db7cd576710e3c1dcab335a6ecded58370a","fingerprint":"7046c1b286449eaf9f3ff5c18f162ae44088f1be","host":"keybase.io","key_id":"8f162ae44088f1be","kid":"0101f8e0993c69511b515baf988e36c1a20db7cd576710e3c1dcab335a6ecded58370a","uid":"b9ac048da91260baa2c4db3a53747f19","username":"rugk"},"pgp_update":{"fingerprint":"7046c1b286449eaf9f3ff5c18f162ae44088f1be","full_hash":"6ca6609adef46260d41b6b702fed947077b4d26ce318fe40f41e5edda3f45682","kid":"0101f8e0993c69511b515baf988e36c1a20db7cd576710e3c1dcab335a6ecded58370a"},"type":"pgp_update","version":1},"ctime":1507023806,"expire_in":157680000,"prev":"d8b69e80e84cd17efd281b13c6f253a10447ba0d99f81dbb475122dd247c63cb","seqno":5,"tag":"signature"}' | \
   gpg2 -u '7046c1b286449eaf9f3ff5c18f162ae44088f1be' -a --sign`" \
  --data-urlencode type="pgp_update" \
  --data-urlencode session="lgHZIGI5YWMwNDhkYTkxMjYwYmFhMmM0ZGIzYTUzNzQ3ZjE5zlnTVufOAeEzgNkgZTFlODMzYzVlNjliM2U5YmZlOGM1YmFkYTI5MmI0MDLEILVRHi/lfRNZx1HukL48A+AMpxsgNtxMIYLuDPm7ov8t" \
  --data-urlencode csrf_token="lgHZIGI5YWMwNDhkYTkxMjYwYmFhMmM0ZGIzYTUzNzQ3ZjE5zlnTVrTOAAFRgMDEIOWY5s8t64wZ/1OblfOv0dWlKEJDdo++RJJBCF6nMY4x" \
  --data-urlencode plain_out="1" \
  --data-urlencode signing_kid="0101f8e0993c69511b515baf988e36c1a20db7cd576710e3c1dcab335a6ecded58370a" \
  --data-urlencode public_key="-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=5UHP
-----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
6A==
=C/5x
-----END PGP PUBLIC KEY BLOCK-----
" \
  --data-urlencode is_update="true" \
  --data-urlencode sig_required="true" \
  https://keybase.io/_/api/1.0/key/add.json

However, it ends with a Base64 error.

Error in your post
-------------------

Code: 100
Name: INPUT_ERROR
Description: bad base 64 string

Fedora 26
curl 7.53.1

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the website-generated curl request against https://keybase.io/_/api/1.0/key/add.json with the two PGP public keys and the shown gpg2 signing command. Investigate the key-add API entry point and the handling of the public_key or signature fields; done means adding multiple PGP keys no longer returns the bad base 64 string error.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
cli, cryptography
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.