Commit Graph

573 Commits

Author SHA1 Message Date
Levente Polyak
a6cbb72a18
keyring: add packager key: andrea (initial import) 2021-12-09 22:42:15 +01:00
Levente Polyak
1a8d660678
keyring: add packager key: anatolik (initial import) 2021-12-09 22:42:15 +01:00
Levente Polyak
d5b5e69fa5
keyring: add packager key: ambrevar (initial import) 2021-12-09 22:42:15 +01:00
Levente Polyak
263613c91a
keyring: add packager key: alucryd (initial import) 2021-12-09 22:42:15 +01:00
Levente Polyak
7f7522811d
keyring: add packager key: allan (initial import) 2021-12-09 22:42:14 +01:00
Levente Polyak
4e1eed483a
keyring: add packager key: alex19ep (initial import) 2021-12-09 22:42:14 +01:00
Levente Polyak
39bd07f34e
keyring: add packager key: alerque (initial import) 2021-12-09 22:42:14 +01:00
Levente Polyak
abb89f65e7
keyring: add packager key: alad (initial import) 2021-12-09 22:42:14 +01:00
Levente Polyak
dca954a9b1
keyring: add packager key: ainola (initial import) 2021-12-09 22:42:14 +01:00
Levente Polyak
d7f47192b7
keyring: add packager key: aginiewicz (initial import) 2021-12-09 22:42:14 +01:00
Levente Polyak
28fcfc50f4
keyring: add main key: thomas (initial import) 2021-12-09 22:42:14 +01:00
Levente Polyak
64aabc08c1
keyring: add main key: pierre (initial import) 2021-12-09 22:42:14 +01:00
Levente Polyak
7b74d90df9
keyring: add main key: ibiru (initial import) 2021-12-09 22:42:14 +01:00
Levente Polyak
5f5e744b75
keyring: add main key: florian (initial import) 2021-12-09 22:42:13 +01:00
Levente Polyak
9ee625acd8
keyring: add main key: dvzrv (initial import) 2021-12-09 22:42:13 +01:00
Levente Polyak
f93ce2137e
keyring: add main key: dan (initial import) 2021-12-09 22:42:13 +01:00
Levente Polyak
508cd13ad3
keyring: add main key: bpiotrowski (initial import) 2021-12-09 22:42:13 +01:00
Levente Polyak
b060ecaa53
keyring: add main key: anthraxx (initial import) 2021-12-09 22:42:13 +01:00
Levente Polyak
9cc0e0cf00
keyring: add main key: allan (initial import) 2021-12-09 22:42:07 +01:00
Levente Polyak
37ad62d6e5
feature(keyringctl): add clean functionality to match import-clean
De-duplicate not needed certifications by cleaning the keyring after
import to remove old files when processing revocations. This basically
adds the functionality compared to import-clean.
2021-12-08 20:50:45 +01:00
Levente Polyak
d0ea790c6a
fix(make): use proper dependency tracking for the build output
Declare the whole keyring data as well as the code as input dependency
for the build target. This way we can properly depend on the build
target for installation without forcing rebuilding on every invocation.

A rebuild will be triggered if either the keyring or the source code
creating the build output changes.

The directories are added to the source dependencies on purpose to
guarantee that changes like deleted files will result in a rebuild.

The mtime of the build directory is force updated on every run to allow
make to track the output artifacts mtime compared against the
dependencies.
2021-11-30 22:54:17 +01:00
Levente Polyak
0ceb6c743e
fix(keyringctl): avoid simplified uid collisions using a hash
Add a postfix hash of the raw uid data to the filenames to avoid
collisions with the simplified uid.
2021-11-30 22:54:17 +01:00
Levente Polyak
4821087b2b
feature(keyringctl): mark main keys bold during inspect highlight 2021-11-30 22:54:17 +01:00
Levente Polyak
b32c37bec1
feature(keyringctl): raise exception on duplicate uid data 2021-11-30 22:54:17 +01:00
Levente Polyak
b653edfcdc
feature(keyringctl): add trust and colors to inspect output 2021-11-30 22:54:17 +01:00
Levente Polyak
c651bdc61e
feature(keyringctl): add option to filter listing by trust 2021-11-30 22:54:17 +01:00
Levente Polyak
e9dc04df32
feature(keyringctl): split direct key packets into own directory 2021-11-30 22:54:16 +01:00
David Runge
31a49c89a3
Fail test target under 100% test coverage
Makefile:
Fail coverage report below 100% test coverage.
2021-11-30 22:54:16 +01:00
David Runge
e43a28f4a7
Simplify libkeyringctl.keyring.convert_certificate
libkeyringctl/keyring.py:
Simplify `convert_certificate()` by splitting out the conversion of
signature packets to `convert_signature_packet()` and the persistence of
packet material to `persist_key_material()`.
Add `convert_pubkey_signature_packet()`,
`convert_uid_signature_packet()` and
`convert_subkey_signature_packet()` to deal with the conversion of
public key signatures, UID signatures and subkey signatures
(respectively).

tests/test_keyring.py:
Add tests for `convert_certificate()`, `convert_signature_packet()`,
`convert_{pubkey,uid,subkey}_signature_packet()` and
`persist_subkey_revocations()`.
2021-11-30 22:54:16 +01:00
David Runge
bb30e3d2fd
Add tests for list and inspect functions
tests/test_keyring.py:
Add tests for `list_keyring()` and `inspect_keyring()`.
2021-11-30 22:54:16 +01:00
David Runge
743d2bb3bb
Add tests for introspection and export
libkeyringctl/keyring.py:
Change `get_packets_from_path()` to use full conditional statements
which is easier to cover in tests.

tests/test_keyring.py:
Add simple tests for `get_packets_from_path()`,
`get_packets_from_listing()`, `export()` and `build()`.
2021-11-30 22:54:16 +01:00
Levente Polyak
8689995b69
feature(keyringctl): yell and abort if processing private key data 2021-11-30 22:54:16 +01:00
Levente Polyak
5a83a7b6c1
feature(keyringctl): skip user attribute packets as none relevant 2021-11-30 22:54:16 +01:00
David Runge
3d8e88dfaf
Add tests for convert and export functionality
tests/test_keyring.py:
Add basic tests for `convert()`, `export_ownertrust()` and
`export_revoked()`.
2021-11-30 22:54:16 +01:00
Levente Polyak
e8fb9d17b3
chore(keyringctl): add test for simplify_ascii 2021-11-30 22:54:16 +01:00
Levente Polyak
83a345a1b8
feature(keyringctl): rework ci module to execute full lint for new certs 2021-11-30 22:54:16 +01:00
Levente Polyak
bce5bc550e
feature(keyringctl): rework str simplification for printable uids 2021-11-30 22:54:16 +01:00
Levente Polyak
2030de06a0
fix(keyringctl): set HOME, PATH, LANG required for hokey
This effectively requires en_US.UTF-8 to be an available lang, which is
a relative fair requirement and mandatory to set for hokey.
2021-11-30 22:54:15 +01:00
Levente Polyak
f74a1be1ac
chore(keyringctl): add integrity checks for binding/revocation sigs 2021-11-30 22:54:15 +01:00
Levente Polyak
9741ada9ef
fix(keyringctl): put subkey revocations into the correct subkey dirs 2021-11-30 22:54:15 +01:00
David Runge
17d27e2274
Add unit test for libkeyringctl.sequoia.packet_kinds
tests/test_sequoia.py:
Add unit test for libkeyringctl.sequoia.packet_kinds.
2021-11-30 22:54:15 +01:00
Levente Polyak
5f36beff90
feature(ci): run keyring integrity check if keyring or code changes 2021-11-30 22:54:15 +01:00
Levente Polyak
0456e9a5f8
fix(tests): use working dir via fixture instead of cluttering cwd 2021-11-30 22:54:15 +01:00
David Runge
ddf19a4362
Add first unit tests for libkeyringctl.keyring
tests/test_keyring.py:
Add tests for `is_pgp_fingerprint()`,
`transform_{fingerprint,username}_to_keyring_path()`,
`derive_username_from_fingerprint()` and get_fingerprints_from_paths()`.
2021-11-30 22:54:15 +01:00
David Runge
16bed8ac4a
Add fixtures for valid and invalid fingerprints
tests/conftest.py:
Add `valid_fingerprint()` and `valid_subkey_fingerprint()` fixtures to
produce a generic "valid" PGP fingerprint string.
Add the `invalid_fingerprint()` fixture to generate a set of "invalid"
fingerprint strings.
2021-11-30 22:54:15 +01:00
Levente Polyak
e42a895889
fix(keyringctl): add missing python-toml for coverage run 2021-11-30 22:54:15 +01:00
Levente Polyak
e55042e45b
feature(keyringctl): verify file structure integrity and packets
This moves all verify code to an own module and adds support to check
all packet files in the structure for integrity. This is done by parsing
assumptions like packet kind, type, issuer and location etc.
2021-11-30 22:54:15 +01:00
Levente Polyak
d9e9453d84
feature(keyringctl): write all packet files with full issuer fingerprint
This avoids collision between same issuer using key-id and full
fingerprint in different versions of a packet, like signature.
2021-11-30 22:54:15 +01:00
Levente Polyak
279765b22a
fix(keyringctl): fix system stderr case due to wrongly written test
CalledProcessError returns bytes for our invocations, the fix that
decoded bytes of stdout was purely to make the mocked test happy while
breaking the actual usage. Restore the behavior and fix the wrong mocked
data.
2021-11-30 22:54:14 +01:00
Levente Polyak
cd585f4be2
chore(keyringctl): increase test coverage and fix trust expectations 2021-11-30 22:54:14 +01:00