fix for keys with only emails, and no usernames. Closes #227 (#240)

* test and fix for keys with only emails, and no usernames. Closes #227
pull/242/head^2
Josh Rabinowitz 6 years ago committed by GitHub
parent d5c138ab60
commit 246825c658
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -567,17 +567,6 @@ function _get_encrypted_filename {
}
function _parse_keyring_users {
# First argument must be a `sed` pattern
local sed_pattern="$1"
local result
local secrets_dir_keys
secrets_dir_keys=$(_get_secrets_dir_keys)
result=$($SECRETS_GPG_COMMAND --homedir "$secrets_dir_keys" --no-permission-warning --list-public-keys --with-colon | sed -n "$sed_pattern")
echo "$result"
}
function _get_users_in_keyring {
@ -585,7 +574,15 @@ function _get_users_in_keyring {
# `whoknows` command uses it internally.
# It basically just parses the `gpg` public keys
_parse_keyring_users 's/.*<\(.*\)>.*/\1/p'
local secrets_dir_keys
secrets_dir_keys=$(_get_secrets_dir_keys)
# pluck out 'uid' lines, fetch 10th field, extract part in <> if it exists (else leave alone)
# we use --fixed-list-mode so older versions of gpg emit 'uid:' lines
local result
result=$($SECRETS_GPG_COMMAND --homedir "$secrets_dir_keys" --no-permission-warning --list-public-keys --with-colon --fixed-list-mode | grep ^uid: | gawk -F':' '{print $10;}' | sed 's/.*<\(.*\)>.*/\1/')
echo "$result"
}
@ -594,7 +591,9 @@ function _get_recipients {
# These users are called 'recipients' in the `gpg` terms.
# It basically just parses the `gpg` public keys
_parse_keyring_users 's/.*<\(.*\)>.*/-r\1/p'
local result
result=$(_get_users_in_keyring | sed 's/^/-r/') # put -r before each user
echo "$result"
}

@ -33,9 +33,10 @@ GPGTEST="$SECRETS_GPG_COMMAND --homedir=$TEST_GPG_HOMEDIR --no-permission-warnin
# Personal data:
TEST_DEFAULT_USER="user1"
TEST_SECOND_USER="user2" # shellcheck disable=2034
TEST_ATTACKER_USER="attacker1" # shellcheck disable=2034
# user3 created with '--quick-key-generate' and has only an email, no username.
TEST_DEFAULT_USER="user3"
TEST_SECOND_USER="user2"
TEST_ATTACKER_USER="attacker1"
#TEST_DEFAULT_FILENAME="file_one" # no spaces
#TEST_SECOND_FILENAME="file_two" # no spaces

@ -0,0 +1,11 @@
== public/private key pairs for test keys
* user1 and user2 are normal gpg key sets for user1@gitsecret.io and
user2@gitsecret.io. They have the passwords 'user1pass' and 'user2pass',
respectively.
* user3 was created by `gpg --quick-generate user3@gitsecret.io`
and therefore has only an email associated with it (no username).
It has the password 'user3pass' as the tests expect.
This user was created to fix https://github.com/sobolevn/git-secret/issues/227 ,
"keys with no info but the email address not recognized by whoknows"

@ -0,0 +1,59 @@
-----BEGIN PGP PRIVATE KEY BLOCK-----
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
t8BLVRdOiK5wCW5ErIHh7mpgpvRK4Q==
=3Kdr
-----END PGP PRIVATE KEY BLOCK-----

@ -0,0 +1,30 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBFtLVc0BCACwGHyefi/z8xeH6KpLN2k9+PlHAPpwJaW+8siaWjbQenkbWX6/
cVBFBwLNVCY+UacKNKVPxYDgS9UkAGlqD1GRGISh9uvIKW/w4T2LBxDQBGlYsTdL
KhOY1eTb5c7fa3ai17CqNam384+fqD9WCiK3PnO/1QLW48E8Q3R7JgyxmFB96FCb
PZuRAMcBmKR7aa2yp493gGoI6Ts04gd33zDex0Qywz7u1rKNp/Sirb35nJUZ7Q63
fof2LXSaJXEnHMdE6BFMkIhSluMAICxnb8uD57QilPSh3dkd5VmZAwd0dFV9orLA
zlBnRu/VOmQA3bXaT8/g+F0XiA/r+4ARLnyRABEBAAG0EnVzZXIzQGdpdHNlY3Jl
dC5pb4kBVAQTAQgAPhYhBHP8k4RMwYJK33MPsbP8kwgK5TtRBQJbS1XNAhsDBQkD
wmcABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELP8kwgK5TtR/RUIAILLv/ij
FXzZ87KgikMi4PQ+WGpgXe8G5ownzwQS3TKAFSpk2QsWwzrOcFK3midxCqhUVRJ+
U+92yPUlGkSa2BXQI5xGud8wLTFdEYHSJi64jFfgKKg4pNtJnRs95jCPXNxvSIvj
ZbTtbutl1U9xotlQhoezRLBMCyjfQCZx9D6AnpcrBHkD6u/pDlrDHkjE5SarwRA7
Yca2nm9GH2QxWnjLH4sdXMQOsPHANDy6coaRN5a14RjIFv71vO+JA5Oop13ueP5i
f0cK3Djn4Wz2R4vVx3Mu3/2owMU1GOvZbnbZlb79KYfv469u0TeqNmuu1jc1hFrD
18WpPSv3XEU2pqu5AQ0EW0tVzQEIAPZv9pwPyKQ8x675NJHPXGTCvGMyHXiTHltY
taaEB0UrcWSlHNHL+7tRExjJzV7iTVV36ytJxzo8d8DJbl0/uTK5X8jeoZUlMYO2
ndgNxeD1NJOhinrlWj5FNOUYTcZV5Wz8pWzcil/agGDFtdmL63CtDplSv4CTsz2h
aKY3IaRiv+Q4L/zM7mFrGxg1qY60GZx52WRy0fGHdq5nntcYMcK3WHl8xEzM2hWq
HJaaD5dbs7fQdjx/kBffuseC2m4KS7t6PNffk1f6Mt6VHlrZ/ZD5JWzTakaY4Xqf
g8okDek9dh+i5HzC6KIWOJ/FWrUBBCbQnUwl4yK0e75VxfHwoGsAEQEAAYkBNgQY
AQgAIBYhBHP8k4RMwYJK33MPsbP8kwgK5TtRBQJbS1XNAhsMAAoJELP8kwgK5TtR
PWcH/3K5/Xe6gmRqYEG2kI9ZSK9S7Sx87HJetFIP/Zi97u03PcrOaoPhAfmNM5em
OzKTR7f10xWy1NKKitSVTO6SVWcahR5yquUraVrYgkO798LaXc4rm9UtZJrYiFt1
UTDKkBlvwo5EY9ed9iqmnnnzPKw1yj+JfwAfIL317Pl4eLYBE+PY4fwjiIfGilQD
HBHtkfMs/HgrZpOwHMHMmBg2XaYh5PfTDzPQAougKqeeX5jyrrJTIy9S71o5RhA8
5jmUGLX8DE2+YnV6n25gvUKO5EkWQFt+KwKEw8B4eROufdVBFe8JAYVN+MN1lLfA
S1UXToiucAluRKyB4e5qYKb0SuE=
=XKbN
-----END PGP PUBLIC KEY BLOCK-----
Loading…
Cancel
Save