rnpgp / rnp

RNP: high performance C++ OpenPGP library used by Mozilla Thunderbird
https://www.rnpgp.org
Other
201 stars 55 forks source link

Release tags lineage stems from inital commit, not from master branch #1796

Open andrey-utkin opened 2 years ago

andrey-utkin commented 2 years ago

Description

I've just found a nice tool git-big-picture and run it over rnp repo. It has revealed a surprising structure of tags and branches. Basically all the release tags, from the oldest one to the latest v0.16.0, are a chain, and that chain diverges from master branch very early on. But there's no intersection of releases chain and master branch! I've never seen such a structure in practice - what happens normally is that release is stamped directly on master branch, or is branched off of master. rnp

Another way to look at this is to run git show-branch origin/master v0.16.0. It returns a listing 3369 lines long, the shared ancestor being

commit fd1fcd7428996c66ec9e2ebe01529887a27cded9
Author: Daniel Wyatt <Daniel.Wyatt@gmail.com>
Date:   Sun Jun 24 13:50:41 2018 -0400

    docs: Update packaging docs.

I can imagine it being intentional with some reasons behind it, or an overlooked tooling bug, but it does look very unconventional so it may be good to revisit this.

Steps to Reproduce

  1. pip install git-big-picture
  2. git-big-picture -b -t -v firefox -o rnp.svg in a git workcopy
  3. git show-branch origin/master v0.16.0

Expected Behavior

Actual Behavior

See Description section.

ni4 commented 2 years ago

@andrey-utkin Our release process is described in the docs/develop/release-workflow.adoc. Basically, all PRs target master, and then on release all needed commits are checrry-picked from the master to the release/0.x branch. That gives flexibility to include only required commits to the dot release, reorder them, and so on. Say, we did release v0.16.0, then add bunch of commits to the master, and then need to release critical update via v0.16.1 which should not include all the other changes.

However, we are always open for the discussion on improving the process and sharing the experience on subject :)

andrey-utkin commented 2 years ago

Thanks for explaining the reasoning behind it. So we're doing a "v0.x stable branch", and supposedly at the point of v1.0 we'd branch it off master? That should work. What troubles me then is that in our case the divergence is almost 5 years old, and there are many slight differences in many source files and tests, and most concerningly, the great suite of CI checks runs all the time on master (due to pull request work), not on release branch, so we have fewer opportunities to spot flakiness in releases. We don't run daily CI on release branch, do we? I accept that I might be overly cautious.

ni4 commented 2 years ago

So we're doing a "v0.x stable branch", and supposedly at the point of v1.0 we'd branch it off master?

Correct, for major releases we'll do another branch so we could be able to merge critical issues to the previous versions.

We don't run daily CI on release branch, do we?

Actually, we do - commits to the release branch are made via the PR to the corresponding branch (see this one for example: https://github.com/rnpgp/rnp/pull/1742 ). This is controlled via the following lines in Github Workflows:

on:
  push:
    branches:
      - master
      - 'release/**'
andrey-utkin commented 2 years ago

I mean, full CI doesn't run and get reviewed on current releases every day, or nearly as often as on master.

ni4 commented 2 years ago

I mean, full CI doesn't run and get reviewed on current releases every day, or nearly as often as on master.

Ah, got it. But what sort of flakiness may happen in such case (except updates to the dependencies/CI runners) ?

andrey-utkin commented 2 years ago

But what sort of flakiness may happen in such case (except updates to the dependencies/CI runners) ?

My point is, you transfer (backport) select changes, and transfer your expectations about the effects onto a slightly different codebase. It's my entire point is that we let master and a fresh release be not equivalent but to be descendants of long-diverged ancestry lines.

These transferred expectations may work, but sometimes they may break.

This is a known failure mode of backporting. I can't find links now, but there's been a documented case when Debian package maintainer received an upstream (Grafana?) advisory, backported a codebase patch but disregarded a dependency update, because version updates are against backporting procedure. But the dependency update was crucial in making the patch work as intended. And then appropriate testing didn't happen to ensure the backport actually mitigates the issue.

The moral lesson is, you never know if you've done it well in all possible senses if you went your own way rather than replicated stuff exactly.

ni4 commented 2 years ago

Thanks for the detailed explanation. So, adding/configuring some CI runners on the release branch every few days sounds like a solution? Or do you have a better idea? cc @ronaldtse

andrey-utkin commented 2 years ago

Regular CI runners on the release branch would be great, and indeed would address some of the concerns. The concern which remains is, the test suite itself is slightly different between master and the release branches, isn't it? Ultimately the premise that the separate releases lineage is somehow better for shipping is not justified IMHO. (If it's better for shipping, then why developers are not working on top of it day to day? What are testable requirements which release branch satisfies but master doesn't?)

ni4 commented 2 years ago

Ok, I created an issue #1800 for this.

The concern which remains is, the test suite itself is slightly different between master and the release branches, isn't it?

Usually any PR also includes tests for the new functionality, so things which are picked to the release branch also includes tests for those.

andrey-utkin commented 2 years ago

There's still a lot of difference in src/tests/ : https://github.com/rnpgp/rnp/compare/v0.16.0...ba9bd83b76edddce4a02036465036e7f52d960ee?diff=unified#files_bucket

It's too much for me to trust that they are functionally equivalent.

git diff --stat v0.16.0...ba9bd83b76edddce4a02036465036e7f52d960ee -- src/tests
 src/tests/CMakeLists.txt                           |   256 +-
 src/tests/cipher.cpp                               |   947 +-
 src/tests/cipher_cxx.cpp                           |   259 +
 src/tests/cli.cpp                                  |   841 ++
 src/tests/cli_common.py                            |   168 +-
 src/tests/cli_perf.py                              |   100 +-
 src/tests/cli_tests.py                             |  2568 +++-
 src/tests/data/.gitattributes                      |    19 +
 .../GnuPG_dsa_elgamal_1024_1024-sec.gpg            |    50 +-
 .../GnuPG_dsa_elgamal_1024_1024.gpg                |   Bin 977 -> 965 bytes
 .../GnuPG_dsa_elgamal_1024_2048-sec.gpg            |    61 +-
 .../GnuPG_dsa_elgamal_1024_2048.gpg                |   Bin 1233 -> 1221 bytes
 .../GnuPG_dsa_elgamal_1234_1234-sec.gpg            |    58 +-
 .../GnuPG_dsa_elgamal_1234_1234.gpg                |   Bin 1169 -> 1157 bytes
 .../GnuPG_dsa_elgamal_2048_2048-sec.gpg            |    80 +-
 .../GnuPG_dsa_elgamal_2048_2048.gpg                |   Bin 1677 -> 1665 bytes
 .../GnuPG_dsa_elgamal_2112_2112-sec.gpg            |    82 +-
 .../GnuPG_dsa_elgamal_2112_2112.gpg                |   Bin 1717 -> 1705 bytes
 .../GnuPG_dsa_elgamal_3072_3072-sec.gpg            |   107 +-
 .../GnuPG_dsa_elgamal_3072_3072.gpg                |   Bin 2317 -> 2305 bytes
 .../cli_EncryptSign/GnuPG_rsa_1024_1024-sec.gpg    |    65 +-
 .../data/cli_EncryptSign/GnuPG_rsa_1024_1024.gpg   |   Bin 734 -> 722 bytes
 .../cli_EncryptSign/GnuPG_rsa_2048_2048-sec.gpg    |   113 +-
 .../data/cli_EncryptSign/GnuPG_rsa_2048_2048.gpg   |   Bin 1250 -> 1238 bytes
 .../cli_EncryptSign/GnuPG_rsa_3072_3072-sec.gpg    |   161 +-
 .../data/cli_EncryptSign/GnuPG_rsa_3072_3072.gpg   |   Bin 1762 -> 1750 bytes
 .../cli_EncryptSign/GnuPG_rsa_4096_4096-sec.gpg    |   209 +-
 .../data/cli_EncryptSign/GnuPG_rsa_4096_4096.gpg   |   Bin 2274 -> 2262 bytes
 src/tests/data/cli_EncryptSign/regenerate_keys     |    27 +-
 .../issue1188/armored_revocation_signature.pgp     |    12 +
 src/tests/data/keyrings/1/pubring.gpg.asc          |    67 +
 src/tests/data/keyrings/3/pubring.kbx              |   Bin 1435 -> 1435 bytes
 src/tests/data/keyrings/6/pubring.gpg              |   Bin 0 -> 1201 bytes
 src/tests/data/keyrings/6/secring.gpg              |   Bin 0 -> 2503 bytes
 src/tests/data/test_cli/hello.txt                  |     2 +
 .../A56DC8DB8355747A809037459B4258B8A743EAB5.key   |   Bin 0 -> 352 bytes
 .../FC81AECE90BCE6E54D0D637D266109783AC8DAC0.key   |   Bin 0 -> 352 bytes
 src/tests/data/test_cli_g10_defkey/g10/pubring.kbx |   Bin 0 -> 13254 bytes
 src/tests/data/test_cli_rnpkeys/g10_list_keys      |    72 +
 .../data/test_cli_rnpkeys/g10_list_keys_no_bp      |    72 +
 src/tests/data/test_cli_rnpkeys/g10_list_keys_sec  |    66 +
 .../data/test_cli_rnpkeys/g10_list_keys_sec_no_bp  |    66 +
 src/tests/data/test_cli_rnpkeys/getkey_00000000    |     1 +
 .../data/test_cli_rnpkeys/getkey_2fcadf05ffa501bb  |    12 +
 .../test_cli_rnpkeys/getkey_2fcadf05ffa501bb_sec   |    12 +
 .../getkey_2fcadf05ffa501bb_sec_y2k38              |    12 +
 .../test_cli_rnpkeys/getkey_2fcadf05ffa501bb_sig   |    15 +
 .../getkey_2fcadf05ffa501bb_sig_y2k38              |    15 +
 .../test_cli_rnpkeys/getkey_2fcadf05ffa501bb_y2k38 |    12 +
 src/tests/data/test_cli_rnpkeys/getkey_zzzzzzzz    |     1 +
 .../data/test_cli_rnpkeys/keyring_1_list_keys      |    24 +
 .../data/test_cli_rnpkeys/keyring_1_list_keys_sec  |    24 +
 .../test_cli_rnpkeys/keyring_1_list_keys_sec_y2k38 |    24 +
 .../test_cli_rnpkeys/keyring_1_list_keys_y2k38     |    24 +
 .../data/test_cli_rnpkeys/keyring_1_list_sigs      |    30 +
 .../data/test_cli_rnpkeys/keyring_1_list_sigs_sec  |    30 +
 .../test_cli_rnpkeys/keyring_1_list_sigs_sec_y2k38 |    30 +
 .../test_cli_rnpkeys/keyring_1_list_sigs_y2k38     |    30 +
 .../data/test_cli_rnpkeys/keyring_2_list_keys      |     6 +
 .../data/test_cli_rnpkeys/keyring_2_list_sigs      |     7 +
 .../data/test_cli_rnpkeys/keyring_3_list_keys      |     8 +
 .../test_cli_rnpkeys/keyring_3_list_keys_y2k38     |     8 +
 .../data/test_cli_rnpkeys/keyring_3_list_sigs      |     9 +
 .../test_cli_rnpkeys/keyring_3_list_sigs_y2k38     |     9 +
 .../data/test_cli_rnpkeys/keyring_5_list_keys      |     8 +
 .../data/test_cli_rnpkeys/keyring_5_list_sigs      |     9 +
 .../pubring-malf-cert-permissive-import.txt        |    29 +
 .../pubring-malf-cert-permissive-import.txt_y2k38  |    29 +
 .../test_cli_rnpkeys/test_stream_key_load_keys     |    72 +
 .../test_stream_key_load_keys_no_bp                |    72 +
 .../test_cli_rnpkeys/test_stream_key_load_keys_sec |    66 +
 .../test_cli_rnpkeys/test_stream_key_load_sigs     |    84 +
 .../test_stream_key_load_sigs_no_bp                |    84 +
 .../test_cli_rnpkeys/test_stream_key_load_sigs_sec |    77 +
 .../data/test_ffi_json/generate-pair-dsa-elg.json  |    11 +
 src/tests/data/test_ffi_json/generate-pair.json    |     1 -
 .../test_forged_keys/dsa-eg-pub-forged-key.pgp     |   Bin 0 -> 1881 bytes
 .../dsa-eg-pub-forged-material.pgp                 |   Bin 0 -> 1881 bytes
 .../test_forged_keys/dsa-eg-pub-forged-subkey.pgp  |   Bin 0 -> 1881 bytes
 src/tests/data/test_forged_keys/dsa-eg-pub.pgp     |   Bin 0 -> 1881 bytes
 .../test_forged_keys/ecc-25519-pub-forged-key.pgp  |   Bin 0 -> 214 bytes
 .../ecc-25519-pub-forged-material.pgp              |   Bin 0 -> 214 bytes
 .../ecc-25519-pub-future-cert-malf-bind.pgp        |   Bin 0 -> 604 bytes
 .../test_forged_keys/ecc-25519-pub-future-cert.pgp |   Bin 0 -> 604 bytes
 src/tests/data/test_forged_keys/ecc-25519-pub.pgp  |   Bin 0 -> 214 bytes
 .../test_forged_keys/ecc-p256-pub-expired-key.pgp  |   Bin 0 -> 460 bytes
 .../ecc-p256-pub-expired-subkey.pgp                |   Bin 0 -> 460 bytes
 .../test_forged_keys/ecc-p256-pub-forged-key.pgp   |   Bin 0 -> 454 bytes
 .../ecc-p256-pub-forged-material.pgp               |   Bin 0 -> 454 bytes
 .../ecc-p256-pub-forged-subkey.pgp                 |   Bin 0 -> 454 bytes
 .../test_forged_keys/ecc-p256-pub-no-binding.pgp   |   Bin 0 -> 332 bytes
 .../ecc-p256-pub-no-cert-malf-binding.pgp          |   Bin 0 -> 304 bytes
 .../ecc-p256-pub-no-certification.pgp              |   Bin 0 -> 304 bytes
 src/tests/data/test_forged_keys/ecc-p256-pub.pgp   |   Bin 0 -> 454 bytes
 .../test_forged_keys/ecc-p256-sec-expired-key.pgp  |   Bin 0 -> 626 bytes
 .../ecc-p256-sec-expired-subkey.pgp                |   Bin 0 -> 626 bytes
 src/tests/data/test_forged_keys/ecc-p256-sec.pgp   |   Bin 0 -> 620 bytes
 .../test_forged_keys/rsa-rsa-pub-forged-key.pgp    |   Bin 0 -> 1719 bytes
 .../rsa-rsa-pub-forged-material.pgp                |   Bin 0 -> 1719 bytes
 .../test_forged_keys/rsa-rsa-pub-forged-subkey.pgp |   Bin 0 -> 1719 bytes
 .../test_forged_keys/rsa-rsa-pub-future-key.pgp    |   Bin 0 -> 1201 bytes
 src/tests/data/test_forged_keys/rsa-rsa-pub.pgp    |   Bin 0 -> 1719 bytes
 .../test_forged_keys/rsa-rsa-sec-future-key.pgp    |   Bin 0 -> 2594 bytes
 src/tests/data/test_forged_keys/rsa-rsa-sec.pgp    |   Bin 0 -> 3753 bytes
 ...z-testcase-minimized-fuzz_dump-5757362284265472 |   Bin 0 -> 93740 bytes
 ...imeout-7e498daecad7ee646371a466d4a317c59fe7db89 |   Bin 0 -> 19194 bytes
 .../crash_25f06f13b48d58a5faf6c36fae7fcbd958359199 |   Bin 0 -> 1105 bytes
 .../crash_37e8ed57ee47c1991b387fa0506f361f9cd9c663 |   Bin 0 -> 1312 bytes
 .../crash_e932261875271ccf497715de56adf7caf30ca8a7 |     3 +
 .../leak_11307b70cc609c93fc3a49d37f3a31166df50f44  |   Bin 0 -> 60 bytes
 .../leak_371b211d7e9cf9857befcf06c7da74835e249ee7  |   Bin 0 -> 83 bytes
 ...imeout_9c10372fe9ebdcdb0b6e275d05f8af4f4e3d6051 |   Bin 0 -> 726 bytes
 .../crash-7ff10f10a95b78461d6f3578f5f99e870c792b9f |   Bin 0 -> 41 bytes
 .../crash-8619144979e56d07ab4890bf564b90271ae9b1c9 |   Bin 0 -> 56 bytes
 .../leak-542d4e51506e3e9d34c9b243e608a964dabfdb21  |   Bin 0 -> 540 bytes
 .../leak-5ee77f7ae99d7815d069afe037c42f4887193215  |   Bin 0 -> 81 bytes
 .../crash_4ec166859e821aee27350dcde3e9c06b07a677f7 |     1 +
 .../crash_c9cabce6f8d7b36fde0306c86ce81c4f554cbd2a |     1 +
 .../crash-5526a2e13255018c857ce493c28ce7108b8b2987 |   Bin 0 -> 32 bytes
 .../crash-b894a2f79f7d38a16ae0ee8d74972336aa3f5798 |   Bin 0 -> 150 bytes
 .../leak-52c65c00b53997178f4cd9defa0343573ea8dda6  |   Bin 0 -> 361 bytes
 .../leak-b02cd1c6b70c10a8a673a34ba3770b39468b7ddf  |   Bin 0 -> 481 bytes
 ...imeout-821848a7b6b667fc41e5ff130415b3efd22ed118 |   Bin 0 -> 47498 bytes
 ...imeout-25b8c9d824c8eb492c827689795748298a2b0a46 |   Bin 0 -> 12874 bytes
 ...imeout-c2aff538c73b447bca689005e9762840b5a022d0 |   Bin 0 -> 39966 bytes
 ...minimized-fuzz_verify_detached-5092660526972928 |   Bin 0 -> 263676 bytes
 ...mory-23094cb781b2cf6d1749ebac8bd0576e51440498-z |   Bin 0 -> 466 bytes
 ...memory-dea88a4aa4ab5fec1291446db702ee893d5559cf |   Bin 0 -> 742567 bytes
 .../test_key_edge_cases/alice-2-keys-same-grip.pgp |   Bin 0 -> 858 bytes
 .../test_key_edge_cases/alice-2-subs-same-grip.pgp |   Bin 0 -> 640 bytes
 .../alice-3-uids-primary-boris.pgp                 |   Bin 0 -> 930 bytes
 .../alice-3-uids-primary-expiring.pgp              |   Bin 0 -> 948 bytes
 .../data/test_key_edge_cases/alice-3-uids.pgp      |   Bin 0 -> 927 bytes
 .../test_key_edge_cases/alice-rev-no-reason.pgp    |   Bin 0 -> 337 bytes
 .../test_key_edge_cases/alice-s2k-101-1-subs.pgp   |   Bin 0 -> 925 bytes
 .../alice-s2k-101-2-card-len.pgp                   |   Bin 0 -> 942 bytes
 .../test_key_edge_cases/alice-s2k-101-2-card.pgp   |   Bin 0 -> 942 bytes
 .../data/test_key_edge_cases/alice-s2k-101-3.pgp   |   Bin 0 -> 925 bytes
 .../test_key_edge_cases/alice-s2k-101-unknown.pgp  |   Bin 0 -> 925 bytes
 .../test_key_edge_cases/alice-sig-misc-values.pgp  |   Bin 0 -> 1051 bytes
 .../alice-sub-rev-no-reason.pgp                    |   Bin 0 -> 1096 bytes
 .../data/test_key_edge_cases/alice-sub-sig-fp.pgp  |   Bin 0 -> 512 bytes
 .../test_key_edge_cases/alice-sub-sig-keyid.pgp    |   Bin 0 -> 489 bytes
 .../alice-wrong-mpi-bit-count.pgp                  |   Bin 0 -> 218 bytes
 .../key-25519-non-tweaked-sec-prot.asc             |    14 +
 .../key-25519-non-tweaked-sec.asc                  |    13 +
 .../test_key_edge_cases/key-25519-non-tweaked.asc  |    11 +
 .../test_key_edge_cases/key-25519-tweaked-sec.asc  |    13 +
 .../key-25519-tweaked-wrong-crc.asc                |    13 +
 .../test_key_edge_cases/key-binding-hash-alg.asc   |    14 +
 .../key-create-expiry-32bit.asc                    |    12 +
 .../key-critical-notations-sec.pgp                 |   Bin 0 -> 633 bytes
 .../test_key_edge_cases/key-critical-notations.pgp |   Bin 0 -> 467 bytes
 .../test_key_edge_cases/key-eddsa-small-x-pub.asc  |    11 +
 .../test_key_edge_cases/key-eddsa-small-x-sec.asc  |    14 +
 .../data/test_key_edge_cases/key-eg-4096-pub.pgp   |   Bin 0 -> 2138 bytes
 .../data/test_key_edge_cases/key-eg-4096-sec.pgp   |   Bin 0 -> 2330 bytes
 .../key-eg-small-subgroup-pub.pgp                  |   Bin 0 -> 1870 bytes
 .../key-eg-small-subgroup-sec-enc.pgp              |   Bin 0 -> 2260 bytes
 .../key-eg-small-subgroup-sec.pgp                  |   Bin 0 -> 2168 bytes
 .../data/test_key_edge_cases/key-empty-packets.pgp |   Bin 0 -> 6 bytes
 .../data/test_key_edge_cases/key-empty-packets.txt |     1 +
 .../data/test_key_edge_cases/key-empty-uid-raw.txt |    91 +
 .../data/test_key_edge_cases/key-empty-uid.json    |   170 +
 .../data/test_key_edge_cases/key-empty-uid.pgp     |   Bin 0 -> 201 bytes
 .../data/test_key_edge_cases/key-empty-uid.txt     |    43 +
 .../key-expired-cert-direct.pgp                    |   Bin 0 -> 781 bytes
 .../data/test_key_edge_cases/key-malf-sig.json     |    45 +
 .../data/test_key_edge_cases/key-malf-sig.pgp      |   Bin 0 -> 201 bytes
 .../data/test_key_edge_cases/key-malf-sig.txt      |    15 +
 .../key-primary-uid-conflict-pub.pgp               |   Bin 0 -> 548 bytes
 .../key-primary-uid-conflict-sec.pgp               |   Bin 0 -> 714 bytes
 .../data/test_key_edge_cases/key-rsa-2001-pub.asc  |    26 +
 .../data/test_key_edge_cases/key-rsa-2001-sec.asc  |    50 +
 src/tests/data/test_key_edge_cases/key-sec.asc     |    11 +
 .../data/test_key_edge_cases/key-sub-0-expiry.pgp  |   Bin 0 -> 408 bytes
 .../test_key_edge_cases/key-sub-crit-note-pub.pgp  |   Bin 0 -> 479 bytes
 .../test_key_edge_cases/key-sub-crit-note-sec.pgp  |   Bin 0 -> 645 bytes
 .../test_key_edge_cases/key-subpacket-101-110.json |   250 +
 .../test_key_edge_cases/key-subpacket-101-110.pgp  |   Bin 0 -> 246 bytes
 .../test_key_edge_cases/key-subpacket-101-110.txt  |    63 +
 .../test_key_edge_cases/key-unhashed-subpkts.pgp   |   Bin 0 -> 2017 bytes
 .../data/test_key_edge_cases/pubring-malf-cert.pgp |   Bin 0 -> 3535 bytes
 .../pubring-malf-key0-sub0-bind.pgp                |   Bin 0 -> 3535 bytes
 .../test_key_edge_cases/pubring-malf-key0-sub0.pgp |   Bin 0 -> 3535 bytes
 .../data/test_key_edge_cases/pubring-malf-key0.pgp |   Bin 0 -> 3535 bytes
 .../data/test_key_edge_cases/secring-malf-key0.pgp |   Bin 0 -> 4909 bytes
 .../data/test_key_edge_cases/secring-malf-key1.pgp |   Bin 0 -> 4909 bytes
 src/tests/data/test_key_validity/CMakeLists.txt    |    25 +
 src/tests/data/test_key_validity/alice-cert.pgp    |   Bin 0 -> 146 bytes
 .../test_key_validity/alice-expired-claus-cert.asc |    12 +
 src/tests/data/test_key_validity/alice-pub.asc     |     9 +
 src/tests/data/test_key_validity/alice-rev.pgp     |     8 +
 .../data/test_key_validity/alice-revoker-sig.asc   |     8 +
 .../data/test_key_validity/alice-revoker-sig.pgp   |   Bin 0 -> 146 bytes
 src/tests/data/test_key_validity/alice-revoker.pgp |   Bin 0 -> 868 bytes
 src/tests/data/test_key_validity/alice-sec.asc     |    11 +
 .../test_key_validity/alice-sign-sub-exp-pub.asc   |    14 +
 .../test_key_validity/alice-sign-sub-exp-sec.asc   |    17 +
 .../data/test_key_validity/alice-sign-sub-pub.pgp  |   Bin 0 -> 540 bytes
 .../data/test_key_validity/alice-sign-sub-sec.pgp  |   Bin 0 -> 706 bytes
 .../data/test_key_validity/alice-sigs-malf.pgp     |   Bin 0 -> 268 bytes
 src/tests/data/test_key_validity/alice-sigs.asc    |    16 +
 src/tests/data/test_key_validity/alice-sigs.pgp    |   Bin 0 -> 268 bytes
 src/tests/data/test_key_validity/alice-sub-pub.pgp |   Bin 0 -> 429 bytes
 src/tests/data/test_key_validity/alice-sub-sec.pgp |   Bin 0 -> 595 bytes
 src/tests/data/test_key_validity/basil-pub.asc     |    10 +
 src/tests/data/test_key_validity/basil-sec.asc     |    11 +
 src/tests/data/test_key_validity/case1/pubring.gpg |   Bin 0 -> 337 bytes
 .../data/test_key_validity/case10/pubring.gpg      |   Bin 0 -> 554 bytes
 .../data/test_key_validity/case11/pubring.gpg      |   Bin 0 -> 701 bytes
 .../data/test_key_validity/case12/pubring.gpg      |   Bin 0 -> 701 bytes
 .../data/test_key_validity/case13/pubring.gpg      |   Bin 0 -> 701 bytes
 .../data/test_key_validity/case14/pubring.gpg      |   Bin 0 -> 695 bytes
 .../data/test_key_validity/case15/pubring.gpg      |   Bin 0 -> 525 bytes
 src/tests/data/test_key_validity/case2/pubring.gpg |   Bin 0 -> 705 bytes
 src/tests/data/test_key_validity/case3/pubring.gpg |   Bin 0 -> 559 bytes
 src/tests/data/test_key_validity/case4/pubring.gpg |   Bin 0 -> 429 bytes
 .../data/test_key_validity/case5/CMakeLists.txt    |    38 +
 .../data/test_key_validity/case5/generate.cpp      |   160 +
 src/tests/data/test_key_validity/case5/pubring.gpg |   Bin 0 -> 678 bytes
 src/tests/data/test_key_validity/case6/pubring.gpg |   Bin 0 -> 551 bytes
 src/tests/data/test_key_validity/case7/pubring.gpg |   Bin 0 -> 569 bytes
 src/tests/data/test_key_validity/case8/message.txt |     3 +
 .../data/test_key_validity/case8/message.txt.asc   |    17 +
 src/tests/data/test_key_validity/case8/primary.pgp |   Bin 0 -> 53 bytes
 src/tests/data/test_key_validity/case8/pubring.gpg |   Bin 0 -> 375 bytes
 .../data/test_key_validity/case8/subkey-no-sig.pgp |   Bin 0 -> 81 bytes
 src/tests/data/test_key_validity/case8/subkey.pgp  |   Bin 0 -> 322 bytes
 src/tests/data/test_key_validity/case9/pubring.gpg |   Bin 0 -> 581 bytes
 src/tests/data/test_key_validity/cases.txt         |    77 +
 src/tests/data/test_key_validity/claus-pub.asc     |    10 +
 src/tests/data/test_key_validity/claus-sec.asc     |    11 +
 .../data/test_key_validity/encrypting-primary.pgp  |    41 +
 .../test_key_validity/rsa_key_small_sig-pub.asc    |    26 +
 .../test_key_validity/rsa_key_small_sig-sec.asc    |    48 +
 .../data/test_large_MPIs/message.enc.rsa16384.pgp  |   Bin 0 -> 2240 bytes
 .../data/test_large_MPIs/message.enc.rsa16385.pgp  |   Bin 0 -> 2240 bytes
 .../data/test_large_MPIs/rsa-priv-16384bits.pgp    |   Bin 0 -> 18673 bytes
 .../data/test_large_MPIs/rsa-priv-16385bits.pgp    |   Bin 0 -> 18673 bytes
 .../data/test_large_MPIs/rsa-pub-16384bits.pgp     |   Bin 0 -> 8411 bytes
 .../data/test_large_MPIs/rsa-pub-16385bits.pgp     |   Bin 0 -> 8411 bytes
 .../data/test_large_MPIs/rsa-pub-65535bits.pgp     |   Bin 0 -> 8208 bytes
 .../rsa-pub-65535bits.pgp.16385sig.sig             |   Bin 0 -> 2108 bytes
 .../data/test_large_MPIs/rsa-pub-65535bits.pgp.sig |   Bin 0 -> 2108 bytes
 src/tests/data/test_large_packet/4g.bzip2.gpg      |   Bin 0 -> 3349 bytes
 src/tests/data/test_list_packets/ecc-p256-pub.asc  |    14 +
 src/tests/data/test_list_packets/list_all.txt      |   152 +
 src/tests/data/test_list_packets/list_grips.txt    |    81 +
 src/tests/data/test_list_packets/list_json.txt     |   270 +
 src/tests/data/test_list_packets/list_json_all.txt |   299 +
 .../data/test_list_packets/list_json_grips.txt     |   274 +
 src/tests/data/test_list_packets/list_json_mpi.txt |   276 +
 src/tests/data/test_list_packets/list_json_raw.txt |   289 +
 src/tests/data/test_list_packets/list_mpi.txt      |    77 +
 src/tests/data/test_list_packets/list_raw.txt      |   148 +
 src/tests/data/test_list_packets/list_standard.txt |    77 +
 src/tests/data/test_messages/data.enc.small-rsa    |    10 +
 .../data/test_messages/expired_signing_key-pub.asc |    12 +
 .../data/test_messages/expired_signing_key-sec.asc |    13 +
 .../data/test_messages/expired_signing_sub-pub.asc |    16 +
 .../data/test_messages/expired_signing_sub-sec.asc |    18 +
 src/tests/data/test_messages/future.pgp            |   Bin 0 -> 469 bytes
 src/tests/data/test_messages/message-32k-crlf.txt  |   738 ++
 .../data/test_messages/message-32k-crlf.txt.gpg    |   Bin 0 -> 2847 bytes
 .../data/test_messages/message-32k-crlf.txt.sig    |   Bin 0 -> 181 bytes
 .../data/test_messages/message-trailing-cr.txt     |     3 +
 .../test_messages/message-trailing-cr.txt.sig-text |   Bin 0 -> 181 bytes
 src/tests/data/test_messages/message.4k-long-lines |    16 +
 .../data/test_messages/message.4k-long-lines.asc   |    27 +
 .../test_messages/message.aead-last-zero-chunk.enc |   Bin 0 -> 32426 bytes
 .../test_messages/message.aead-last-zero-chunk.txt |  1243 ++
 .../test_messages/message.compr-encr.31-rounds     |    45 +
 .../test_messages/message.compr-encr.32-rounds     |    51 +
 .../data/test_messages/message.compr.128-rounds    |   320 +
 src/tests/data/test_messages/message.enc-password  |   Bin 0 -> 12752 bytes
 src/tests/data/test_messages/message.sig.asc.malf  |     9 +
 src/tests/data/test_messages/message.text-sig-crcr |   703 ++
 .../data/test_messages/message.text-sig-crcr.sig   |   Bin 0 -> 130 bytes
 src/tests/data/test_messages/message.txt           |     3 +
 .../data/test_messages/message.txt.cleartext-malf  |    15 +
 .../data/test_messages/message.txt.cleartext-nosig |     8 +
 .../test_messages/message.txt.cleartext-signed     |    15 +
 src/tests/data/test_messages/message.txt.crlf      |     3 +
 src/tests/data/test_messages/message.txt.empty.sig |   Bin 0 -> 227 bytes
 .../data/test_messages/message.txt.enc-3key-2p     |   Bin 0 -> 826 bytes
 .../data/test_messages/message.txt.enc-aead-eax    |   Bin 0 -> 468 bytes
 .../test_messages/message.txt.enc-aead-eax-malf    |   Bin 0 -> 468 bytes
 .../data/test_messages/message.txt.enc-aead-ocb    |     1 +
 .../test_messages/message.txt.enc-aead-ocb-malf    |     1 +
 .../data/test_messages/message.txt.enc-eg-bad      |   Bin 0 -> 699 bytes
 .../data/test_messages/message.txt.enc-eg-bad2     |   Bin 0 -> 699 bytes
 .../data/test_messages/message.txt.enc-malf-1      |   Bin 0 -> 325 bytes
 .../data/test_messages/message.txt.enc-malf-2      |   Bin 0 -> 326 bytes
 .../data/test_messages/message.txt.enc-malf-3      |   Bin 0 -> 326 bytes
 .../data/test_messages/message.txt.enc-malf-4      |   Bin 0 -> 327 bytes
 .../data/test_messages/message.txt.enc-malf-5      |   Bin 0 -> 325 bytes
 src/tests/data/test_messages/message.txt.enc-mdc   |   Bin 0 -> 320 bytes
 .../data/test_messages/message.txt.enc-no-mdc      |   Bin 0 -> 296 bytes
 .../data/test_messages/message.txt.enc-sign-25519  |   Bin 0 -> 406 bytes
 .../data/test_messages/message.txt.enc-wrong-alg   |   Bin 0 -> 325 bytes
 src/tests/data/test_messages/message.txt.encrypted |   Bin 0 -> 325 bytes
 src/tests/data/test_messages/message.txt.literal   |     3 +
 src/tests/data/test_messages/message.txt.marker    |   Bin 0 -> 523 bytes
 .../data/test_messages/message.txt.marker.asc      |    14 +
 .../data/test_messages/message.txt.marker.malf     |   Bin 0 -> 525 bytes
 src/tests/data/test_messages/message.txt.sig       |   Bin 0 -> 187 bytes
 src/tests/data/test_messages/message.txt.sig-text  |   Bin 0 -> 181 bytes
 src/tests/data/test_messages/message.txt.sig.malf  |   Bin 0 -> 187 bytes
 .../test_messages/message.txt.sig.wrong-mpi-bitlen |   Bin 0 -> 187 bytes
 .../test_messages/message.txt.sign-small-eddsa-x   |   Bin 0 -> 160 bytes
 src/tests/data/test_messages/message.txt.signed    |   Bin 0 -> 331 bytes
 .../test_messages/message.txt.signed-encrypted     |   Bin 0 -> 518 bytes
 .../test_messages/message.txt.signed-expired-key   |   Bin 0 -> 265 bytes
 .../test_messages/message.txt.signed-expired-sub   |   Bin 0 -> 265 bytes
 .../test_messages/message.txt.signed-md5-after     |   Bin 0 -> 467 bytes
 .../test_messages/message.txt.signed-md5-before    |   Bin 0 -> 469 bytes
 .../data/test_messages/message.txt.signed-no-z     |   Bin 0 -> 361 bytes
 .../test_messages/message.txt.signed-no-z-malf     |   Bin 0 -> 361 bytes
 .../test_messages/message.txt.signed-sha1-after    |   Bin 0 -> 330 bytes
 .../test_messages/message.txt.signed-sha1-before   |   Bin 0 -> 332 bytes
 .../test_messages/message.txt.signed-sym-none-z    |     2 +
 .../test_messages/message.txt.signed.crit-notation |   Bin 0 -> 359 bytes
 .../data/test_messages/message.txt.signed.invsig   |   Bin 0 -> 361 bytes
 .../data/test_messages/message.txt.signed.malfsig  |   Bin 0 -> 361 bytes
 .../data/test_messages/message.txt.signed.md5      |   Bin 0 -> 330 bytes
 .../data/test_messages/message.txt.signed.nosig    |   Bin 0 -> 174 bytes
 .../data/test_messages/message.txt.signed.sha1     |   Bin 0 -> 332 bytes
 .../data/test_messages/message.txt.signed.unknown  |   Bin 0 -> 490 bytes
 .../data/test_messages/message.wrong-armor.asc     |     3 +
 src/tests/data/test_messages/message.zlib-quine    |   Bin 0 -> 180 bytes
 src/tests/data/test_messages/message_mdc_8k_1.pgp  |   Bin 0 -> 131265 bytes
 src/tests/data/test_messages/message_mdc_8k_2.pgp  |   Bin 0 -> 131259 bytes
 .../data/test_messages/message_mdc_8k_cut1.pgp     |   Bin 0 -> 131264 bytes
 .../data/test_messages/message_mdc_8k_cut22.pgp    |   Bin 0 -> 131243 bytes
 src/tests/data/test_messages/shattered-1.pdf       |   Bin 0 -> 422435 bytes
 src/tests/data/test_messages/shattered-1.pdf.sig   |   Bin 0 -> 181 bytes
 src/tests/data/test_messages/shattered-2.pdf       |   Bin 0 -> 422435 bytes
 src/tests/data/test_messages/shattered-2.pdf.gpg   |   Bin 0 -> 381801 bytes
 .../test_partial_length/message.txt.partial-1g     |   Bin 0 -> 1139 bytes
 .../test_partial_length/message.txt.partial-256    |   Bin 0 -> 724 bytes
 .../test_partial_length/message.txt.partial-signed |   Bin 0 -> 237 bytes
 .../message.txt.partial-zero-last                  |   Bin 0 -> 717 bytes
 .../data/test_partial_length/pubring.gpg.partial   |   Bin 0 -> 3536 bytes
 src/tests/data/test_repgp/encrypted_key.gpg        |   Bin 0 -> 2199 bytes
 .../list_key_export_single.txt                     |    75 +
 src/tests/data/test_stream_armor/1024_peek_buf.asc |    52 +
 .../64k_whitespace_before_armored_message.asc      |    52 +
 .../blank_line_with_whitespace.asc                 |    52 +
 .../test_stream_armor/duplicate_header_line.asc    |    54 +
 .../data/test_stream_armor/empty_header_line.asc   |    53 +
 .../extra_line_before_trailer.asc                  |    52 +
 .../data/test_stream_armor/long_header_line.asc    |    53 +
 .../test_stream_armor/long_header_line_1024.asc    |    53 +
 .../test_stream_armor/long_header_line_64k.asc     |    53 +
 .../test_stream_armor/long_header_nameline_64k.asc |    53 +
 .../data/test_stream_armor/message_64k_oneline.asc |     5 +
 .../data/test_stream_armor/too_short_header.asc    |     4 +
 .../test_stream_armor/wrong_chars_base64_1.asc     |    52 +
 .../test_stream_armor/wrong_chars_base64_2.asc     |    52 +
 .../test_stream_armor/wrong_chars_base64_3.asc     |    52 +
 .../test_stream_armor/wrong_chars_base64_4.asc     |    52 +
 .../data/test_stream_armor/wrong_chars_crc.asc     |    52 +
 .../data/test_stream_armor/wrong_chars_header.asc  |    52 +
 .../data/test_stream_armor/wrong_header_line.asc   |    54 +
 src/tests/data/test_stream_key_load/dsa-eg-pub.asc |    48 +-
 src/tests/data/test_stream_key_load/dsa-eg-sec.asc |    56 +-
 .../test_stream_key_load/ecc-25519-photo-pub.asc   |    44 +
 .../data/test_stream_key_load/ecc-25519-pub.asc    |    10 +-
 .../data/test_stream_key_load/ecc-25519-sec.asc    |    14 +-
 .../data/test_stream_key_load/ecc-bp256-pub.asc    |    18 +-
 .../data/test_stream_key_load/ecc-bp256-sec.asc    |    27 +-
 .../data/test_stream_key_load/ecc-bp384-pub.asc    |    24 +-
 .../data/test_stream_key_load/ecc-bp384-sec.asc    |    32 +-
 .../data/test_stream_key_load/ecc-bp512-pub.asc    |    27 +-
 .../data/test_stream_key_load/ecc-bp512-sec.asc    |    36 +-
 .../data/test_stream_key_load/ecc-p256-pub.asc     |    20 +-
 .../test_stream_key_load/ecc-p256-revoked-key.asc  |    17 +
 .../test_stream_key_load/ecc-p256-revoked-sub.asc  |    17 +
 .../test_stream_key_load/ecc-p256-revoked-uid.asc  |    20 +
 .../data/test_stream_key_load/ecc-p256-sec.asc     |    27 +-
 .../data/test_stream_key_load/ecc-p256k1-pub.asc   |    20 +-
 .../data/test_stream_key_load/ecc-p256k1-sec.asc   |    27 +-
 .../data/test_stream_key_load/ecc-p384-pub.asc     |    23 +-
 .../data/test_stream_key_load/ecc-p384-sec.asc     |    32 +-
 .../data/test_stream_key_load/ecc-p521-pub.asc     |    27 +-
 .../data/test_stream_key_load/ecc-p521-sec.asc     |    37 +-
 .../data/test_stream_key_load/ecc-x25519-pub.asc   |    13 +
 .../data/test_stream_key_load/ecc-x25519-sec.asc   |    16 +
 .../2F25DB025DEBF3EA2715350209B985829B04F50A.key   |     2 +
 .../48FFED40D018747363BDEFFDD404D1F4870F8064.key   |     1 +
 .../498B89C485489BA16B40755C0EBA580166393074.key   |   Bin 0 -> 350 bytes
 .../552286BEB2999F0A9E26A50385B90D9724001187.key   |   Bin 0 -> 1094 bytes
 .../5A484F56AB4B8B6583B6365034999F6543FAE1AE.key   |     2 +
 .../636C983EDB558527BA82780B52CB5DAE011BE46B.key   |     2 +
 .../797A83FE041FFE06A7F4B1D32C6F4AE0F6D87ADF.key   |     3 +
 .../9133E4A7E8FC8515518DF444C3F2F247EEBBADEC.key   |     3 +
 .../940D97D75C306D737A59A98EAFF1272832CEDC0B.key   |   Bin 0 -> 332 bytes
 .../A01BAA22A72F09A0FF0A1D4CBCE70844DD52DDD7.key   |   Bin 0 -> 357 bytes
 .../A1338230AED1C9C125663518470B49056C9D1733.key   |   Bin 0 -> 401 bytes
 .../A56DC8DB8355747A809037459B4258B8A743EAB5.key   |   Bin 0 -> 352 bytes
 .../A5E4CD2CBBE44A16E4D6EC05C2E3C3A599DC763C.key   |   Bin 0 -> 1607 bytes
 .../A77DC8173DA6BEE126F5BD6F5A14E01200B52FCE.key   |   Bin 0 -> 332 bytes
 .../B6BD8B81F75AF914163D97DF8DE8F6FC64C283F8.key   |     2 +
 .../C1678B7DE5F144C93B89468D5F9764ACE182ED36.key   |     3 +
 .../CED7034A8EB5F4CE90DF99147EC33D86FCD3296C.key   |   Bin 0 -> 1069 bytes
 .../D148210FAF36468055B83D0F5A6DEB83FBC8E864.key   |   Bin 0 -> 1607 bytes
 .../D91B789603EC9138AA20342A2B6DC86C81B70F5D.key   |   Bin 0 -> 454 bytes
 .../FC81AECE90BCE6E54D0D637D266109783AC8DAC0.key   |   Bin 0 -> 352 bytes
 .../FD048B2CA1919CB241DC8A2C7FA3E742EF343DCA.key   |   Bin 0 -> 454 bytes
 .../data/test_stream_key_load/g10/pubring.kbx      |   Bin 0 -> 11640 bytes
 src/tests/data/test_stream_key_load/key0-sub01.pgp |   Bin 0 -> 1702 bytes
 src/tests/data/test_stream_key_load/key0-sub02.pgp |   Bin 0 -> 2006 bytes
 src/tests/data/test_stream_key_load/key0-sub1.pgp  |   Bin 0 -> 1398 bytes
 .../data/test_stream_key_load/rsa-rsa-2-pub.asc    |    30 +
 .../data/test_stream_key_load/rsa-rsa-2-sec.asc    |    59 +
 .../data/test_stream_key_load/rsa-rsa-pub.asc      |    59 +-
 .../data/test_stream_key_load/rsa-rsa-sec.asc      |   144 +-
 src/tests/data/test_stream_key_merge/key-both.asc  |   202 +
 .../test_stream_key_merge/key-pub-just-key.pgp     |   Bin 0 -> 400 bytes
 .../key-pub-just-subkey-1.pgp                      |   Bin 0 -> 841 bytes
 .../key-pub-just-subkey-2-no-sigs.pgp              |   Bin 0 -> 817 bytes
 .../key-pub-just-subkey-2.pgp                      |   Bin 0 -> 1377 bytes
 .../key-pub-no-key-subkey-1.pgp                    |   Bin 0 -> 841 bytes
 .../key-pub-subkey-1-no-sigs.pgp                   |   Bin 0 -> 800 bytes
 .../test_stream_key_merge/key-pub-subkey-1.pgp     |   Bin 0 -> 1241 bytes
 .../test_stream_key_merge/key-pub-subkey-2.pgp     |   Bin 0 -> 2259 bytes
 .../key-pub-uid-1-no-sigs.pgp                      |   Bin 0 -> 417 bytes
 .../data/test_stream_key_merge/key-pub-uid-1.pgp   |   Bin 0 -> 882 bytes
 .../data/test_stream_key_merge/key-pub-uid-2.pgp   |   Bin 0 -> 882 bytes
 src/tests/data/test_stream_key_merge/key-pub.asc   |    79 +
 src/tests/data/test_stream_key_merge/key-pub.pgp   |   Bin 0 -> 3582 bytes
 .../key-sec-just-subkey-1.pgp                      |   Bin 0 -> 1858 bytes
 .../key-sec-just-subkey-2-no-sigs.pgp              |   Bin 0 -> 900 bytes
 .../key-sec-no-uid-no-sigs.pgp                     |   Bin 0 -> 3734 bytes
 .../key-sec-uid-1-subkey-1.pgp                     |   Bin 0 -> 3757 bytes
 src/tests/data/test_stream_key_merge/key-sec.asc   |   123 +
 src/tests/data/test_stream_key_merge/key-sec.pgp   |   Bin 0 -> 5699 bytes
 .../data/test_stream_key_merge/pkt-key-pub.pgp     |   Bin 0 -> 400 bytes
 .../data/test_stream_key_merge/pkt-key-sec.pgp     |   Bin 0 -> 1417 bytes
 .../data/test_stream_key_merge/pkt-sub0-pub.pgp    |   Bin 0 -> 400 bytes
 .../data/test_stream_key_merge/pkt-sub0-sec.pgp    |   Bin 0 -> 1417 bytes
 .../data/test_stream_key_merge/pkt-sub0-sig.pgp    |   Bin 0 -> 441 bytes
 .../data/test_stream_key_merge/pkt-sub1-pub.pgp    |   Bin 0 -> 817 bytes
 .../data/test_stream_key_merge/pkt-sub1-sec.pgp    |   Bin 0 -> 900 bytes
 .../data/test_stream_key_merge/pkt-sub1-sig.pgp    |   Bin 0 -> 560 bytes
 .../data/test_stream_key_merge/pkt-uid0-sig.pgp    |   Bin 0 -> 465 bytes
 src/tests/data/test_stream_key_merge/pkt-uid0.pgp  |     1 +
 .../data/test_stream_key_merge/pkt-uid1-sig.pgp    |   Bin 0 -> 465 bytes
 src/tests/data/test_stream_key_merge/pkt-uid1.pgp  |     1 +
 src/tests/data/test_stream_signatures/pub.asc      |    42 +-
 .../test_stream_signatures/revoked-key-sig.gpg     |   Bin 0 -> 196 bytes
 src/tests/data/test_stream_signatures/sec.asc      |   128 +-
 .../test_stream_signatures/signature-timestamp.asc |    12 +
 .../data/test_stream_signatures/source.txt.sig.asc |    13 +
 .../test_stream_signatures/source.txt.text.sig     |   Bin 0 -> 438 bytes
 src/tests/data/test_stream_z/4gb.bzip2.asc         |   762 ++
 src/tests/data/test_uid_validity/key-expired.pgp   |   Bin 0 -> 1213 bytes
 .../data/test_uid_validity/key-sig-expired.pgp     |   Bin 0 -> 156 bytes
 .../data/test_uid_validity/key-sig-revocation.pgp  |   Bin 0 -> 145 bytes
 .../data/test_uid_validity/key-uid-expired-sig.pgp |   Bin 0 -> 397 bytes
 .../test_uid_validity/key-uid-prim-expired-sig.pgp |   Bin 0 -> 538 bytes
 .../test_uid_validity/key-uids-pub-no-expire.pgp   |   Bin 0 -> 3923 bytes
 src/tests/data/test_uid_validity/key-uids-pub.pgp  |   Bin 0 -> 3929 bytes
 .../test_uid_validity/key-uids-revoked-valid.pgp   |   Bin 0 -> 8166 bytes
 src/tests/data/test_uid_validity/key-uids-sec.pgp  |   Bin 0 -> 4089 bytes
 .../test_uid_validity/key-uids-with-invalid.pgp    |   Bin 0 -> 3929 bytes
 .../data/test_validate_key_material/dsa-eg-pub.pgp |   Bin 0 -> 1881 bytes
 .../data/test_validate_key_material/dsa-eg-sec.pgp |   Bin 0 -> 1974 bytes
 .../data/test_validate_key_material/dsa-pub.pgp    |   Bin 0 -> 817 bytes
 .../data/test_validate_key_material/dsa-sec.pgp    |   Bin 0 -> 854 bytes
 .../test_validate_key_material/ecdh-p256-sec.pgp   |   Bin 0 -> 125 bytes
 .../test_validate_key_material/ecdsa-p256-sec.pgp  |   Bin 0 -> 121 bytes
 .../test_validate_key_material/ed25519-sec.pgp     |   Bin 0 -> 90 bytes
 .../data/test_validate_key_material/eg-pub.pgp     |   Bin 0 -> 784 bytes
 .../eg-sec-small-group-enc.pgp                     |   Bin 0 -> 1090 bytes
 .../eg-sec-small-group.pgp                         |   Bin 0 -> 1044 bytes
 .../data/test_validate_key_material/eg-sec.pgp     |   Bin 0 -> 840 bytes
 .../data/test_validate_key_material/readme.txt     |    48 +
 .../data/test_validate_key_material/rsa-pub.pgp    |   Bin 0 -> 400 bytes
 .../data/test_validate_key_material/rsa-sec.pgp    |   Bin 0 -> 1371 bytes
 .../data/test_validate_key_material/rsa-ssb.pgp    |   Bin 0 -> 1371 bytes
 .../data/test_validate_key_material/rsa-sub.pgp    |   Bin 0 -> 400 bytes
 .../data/test_validate_key_material/x25519-sec.pgp |   Bin 0 -> 95 bytes
 src/tests/exportkey.cpp                            |    54 +-
 src/tests/ffi-enc.cpp                              |   969 ++
 src/tests/ffi-key-prop.cpp                         |   281 +
 src/tests/ffi-key-sig.cpp                          |  1498 +++
 src/tests/ffi-uid.cpp                              |   379 +
 src/tests/ffi.cpp                                  | 11561 ++++++++++++++++---
 src/tests/file-utils.cpp                           |    73 +
 src/tests/fuzz_dump.cpp                            |    47 +
 src/tests/fuzz_keyimport.cpp                       |    54 +
 src/tests/fuzz_keyring.cpp                         |    51 +
 src/tests/fuzz_keyring_g10.cpp                     |    42 +
 src/tests/fuzz_keyring_kbx.cpp                     |    52 +
 src/tests/fuzz_sigimport.cpp                       |    40 +
 src/tests/fuzz_verify.cpp                          |    43 +
 src/tests/fuzz_verify_detached.cpp                 |    47 +
 src/tests/generatekey.cpp                          |  1685 +--
 src/tests/gnupg.py                                 |    36 +-
 src/tests/issues/1030.cpp                          |    77 +
 src/tests/issues/1115.cpp                          |    47 +
 src/tests/issues/1171.cpp                          |    65 +
 src/tests/issues/oss-fuzz-25489.cpp                |    68 +
 src/tests/kbx-nsigs-test.cpp                       |   137 +
 src/tests/key-add-userid.cpp                       |   197 +-
 src/tests/key-grip.cpp                             |   157 +
 src/tests/key-prefs.cpp                            |   102 +
 src/tests/key-protect.cpp                          |   358 +-
 src/tests/key-store-search.cpp                     |   211 +-
 src/tests/key-unlock.cpp                           |   266 +-
 src/tests/key-validate.cpp                         |   766 ++
 src/tests/large-mpi.cpp                            |   127 +
 src/tests/large-packet.cpp                         |    54 +
 src/tests/load-g10.cpp                             |   112 +-
 src/tests/load-pgp.cpp                             |   955 +-
 src/tests/log-switch.cpp                           |    91 +
 src/tests/partial-length.cpp                       |   228 +
 src/tests/pgp-parse.cpp                            |   201 -
 src/tests/pipe.cpp                                 |   105 +
 src/tests/rng-randomness.cpp                       |    53 +
 src/tests/rnp.py                                   |    44 +-
 src/tests/rnp_tests.cpp                            |   196 +-
 src/tests/rnp_tests.h                              |   392 +-
 src/tests/s2k-iterations.cpp                       |   103 +
 src/tests/streams.cpp                              |  1834 ++-
 src/tests/support.cpp                              |   955 +-
 src/tests/support.h                                |   164 +-
 src/tests/user-prefs.cpp                           |   137 +-
 src/tests/utils-hex2bin.cpp                        |    68 +
 src/tests/utils-list.cpp                           |   238 -
 src/tests/utils-rnpcfg.cpp                         |   156 +-
 533 files changed, 36777 insertions(+), 6248 deletions(-)
ni4 commented 2 years ago

@andrey-utkin Sure, there were more then 30 PRs closed and merged into master since v0.16.0 release, including refactoring ones which changed tests code as well.

andrey-utkin commented 2 years ago

The above comparison is not master-now vs v0.16.0. It's between what seems to be close to "the same point in time".

commit ba9bd83b76edddce4a02036465036e7f52d960ee
Author:     Nickolay Olshevsky <o.nickolay@gmail.com>
AuthorDate: Thu Jan 13 17:26:27 2022 +0200
Commit:     Ronald Tse <ronald.tse@ribose.com>
CommitDate: Wed Jan 26 22:29:05 2022 +0800

    Update changelog and other text files for the v0.16.0 release.
tag v0.16.0
Tagger:     Nickolay Olshevsky <o.nickolay@gmail.com>
TaggerDate: Mon Jan 24 11:29:44 2022 +0200

commit f06439f77e50974e427023f77a459843e46ac682 (tag: v0.16.0, origin/release/0.x)
Author:     Nickolay Olshevsky <o.nickolay@gmail.com>
AuthorDate: Thu Jan 13 17:26:27 2022 +0200
Commit:     Nickolay Olshevsky <o.nickolay@gmail.com>
CommitDate: Mon Jan 24 11:29:10 2022 +0200

    Update changelog and other text files for the v0.16.0 release.
ni4 commented 2 years ago

Looks like git --diff goes crazy here due to mistaligned commit history or so on. Cloning fresh copies and resetting to corresponding tag/commit gives this output (cutting git stuff):

diff -rq v0.16.0 ba9bd83b76edddce4a02036465036e7f52d960ee
...
Files v0.16.0/src/tests/cli_tests.py and ba9bd83b76edddce4a02036465036e7f52d960ee/src/tests/cli_tests.py differ
Only in ba9bd83b76edddce4a02036465036e7f52d960ee/src/tests/data/test_messages: message.4k-long-lines
Only in ba9bd83b76edddce4a02036465036e7f52d960ee/src/tests/data/test_messages: message.4k-long-lines.asc
Only in ba9bd83b76edddce4a02036465036e7f52d960ee/src/tests/data/test_messages: message.aead-last-zero-chunk.enc
Only in ba9bd83b76edddce4a02036465036e7f52d960ee/src/tests/data/test_messages: message.aead-last-zero-chunk.txt
Only in ba9bd83b76edddce4a02036465036e7f52d960ee/src/tests/data/test_messages: message.enc-password
Only in ba9bd83b76edddce4a02036465036e7f52d960ee/src/tests/data/test_messages: message.text-sig-crcr
Only in ba9bd83b76edddce4a02036465036e7f52d960ee/src/tests/data/test_messages: message.text-sig-crcr.sig

Which pretty aligns with the commit history.