ENGINE-487: ENGINE-508: tests in, fixes pass tests except for no-sign-or-encrypt available. Need to fix that. ENGINE-487
authorKrista 'DarthMama' Bennett <krista@pep.foundation>
Tue, 22 Jan 2019 12:47:24 +0100
branchENGINE-487
changeset 3230cf7c04a22200
parent 3229 6d555032f84c
child 3231 9e0cc2126b5e
ENGINE-487: ENGINE-508: tests in, fixes pass tests except for no-sign-or-encrypt available. Need to fix that.
test/convenience_scripts/keygen_for_test.py
test/include/SubkeyRatingEvalTests.h
test/src/SuiteMaker.cc
test/src/engine_tests/SubkeyRatingEvalTests.cc
test/test_keys/priv/crappykey_0-26F88D0B_priv.asc
test/test_keys/priv/crappykey_1-0xC508F2B1_priv.asc
test/test_keys/priv/crappykey_2-0xC027262F_priv.asc
test/test_keys/priv/subkey_select_0-0x4929DC45_priv.asc
test/test_keys/priv/subkey_select_1-0xF2BFF59E_priv.asc
test/test_keys/priv/subkey_select_2-0xBAD7800C_priv.asc
test/test_keys/priv/subkey_select_3-0x34F44C02_priv.asc
test/test_keys/priv/subkey_select_4-0x6E6C7B8A_priv.asc
test/test_keys/priv/subkey_select_5-0xD106E693_priv.asc
test/test_keys/pub/crappykey_0-26F88D0B_pub.asc
test/test_keys/pub/crappykey_1-0xC508F2B1_pub.asc
test/test_keys/pub/crappykey_2-0xC027262F_pub.asc
test/test_keys/pub/subkey_select_0-0x4929DC45_pub.asc
test/test_keys/pub/subkey_select_1-0xF2BFF59E_pub.asc
test/test_keys/pub/subkey_select_2-0xBAD7800C_pub.asc
test/test_keys/pub/subkey_select_3-0x34F44C02_pub.asc
test/test_keys/pub/subkey_select_4-0x6E6C7B8A_pub.asc
test/test_keys/pub/subkey_select_5-0xD106E693_pub.asc
     1.1 --- a/test/convenience_scripts/keygen_for_test.py	Mon Jan 21 14:43:24 2019 +0100
     1.2 +++ b/test/convenience_scripts/keygen_for_test.py	Tue Jan 22 12:47:24 2019 +0100
     1.3 @@ -85,7 +85,7 @@
     1.4  
     1.5      
     1.6      pubkey = gpg.export_keys(fpr)
     1.7 -    privkey = gpg.export_keys(fpr, True, passphrase="")
     1.8 +    privkey = gpg.export_keys(fpr, True)
     1.9  
    1.10      pubkey_filename = os.path.join(pub_path, key_filename_prefix + "pub.asc")
    1.11      privkey_filename = os.path.join(priv_path, key_filename_prefix + "priv.asc")    
    1.12 @@ -99,7 +99,7 @@
    1.13      privkey_file.close()
    1.14          
    1.15      # Delete keys from keyring
    1.16 -    gpg.delete_keys(fpr, True, passphrase="") # True => private keys
    1.17 +    gpg.delete_keys(fpr, True) # True => private keys
    1.18      gpg.delete_keys(fpr)
    1.19  
    1.20      if (args.hgadd):
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/test/include/SubkeyRatingEvalTests.h	Tue Jan 22 12:47:24 2019 +0100
     2.3 @@ -0,0 +1,29 @@
     2.4 +// This file is under GNU General Public License 3.0
     2.5 +// see LICENSE.txt
     2.6 +
     2.7 +#ifndef SUBKEY_RATING_EVAL_H
     2.8 +#define SUBKEY_RATING_EVAL_H
     2.9 +
    2.10 +#include <string>
    2.11 +#include "EngineTestIndividualSuite.h"
    2.12 +
    2.13 +using namespace std;
    2.14 +
    2.15 +class SubkeyRatingEvalTests : public EngineTestIndividualSuite {
    2.16 +    public:
    2.17 +        SubkeyRatingEvalTests(string test_suite, string test_home_dir);
    2.18 +    private:
    2.19 +        void check_subkey_rating_eval();
    2.20 +        void check_subkey_rating_eval_no_es();
    2.21 +        void check_subkey_rating_eval_weak_s();    
    2.22 +        void check_subkey_rating_eval_ecc_s();
    2.23 +        void check_subkey_rating_eval_weak_e_strong_ecc_se();
    2.24 +        void check_subkey_rating_eval_bad_es();
    2.25 +        void check_subkey_rating_eval_bad_e();
    2.26 +        void check_subkey_rating_eval_bad_s_ecc_e();    
    2.27 +        void check_subkey_rating_eval_revoked_sign_no_alt();    
    2.28 +        void check_subkey_rating_eval_revoked_e_with_alt();            
    2.29 +
    2.30 +};
    2.31 +
    2.32 +#endif
     3.1 --- a/test/src/SuiteMaker.cc	Mon Jan 21 14:43:24 2019 +0100
     3.2 +++ b/test/src/SuiteMaker.cc	Tue Jan 22 12:47:24 2019 +0100
     3.3 @@ -22,6 +22,7 @@
     3.4  #include "IdentityListTests.h"
     3.5  #include "PgpBinaryTests.h"
     3.6  #include "MistrustUndoTests.h"
     3.7 +#include "SubkeyRatingEvalTests.h"
     3.8  #include "MessageNullFromTests.h"
     3.9  #include "LeastCommonDenomColorTests.h"
    3.10  #include "StringlistTests.h"
    3.11 @@ -69,6 +70,7 @@
    3.12      "IdentityListTests",
    3.13      "PgpBinaryTests",
    3.14      "MistrustUndoTests",
    3.15 +    "SubkeyRatingEvalTests",
    3.16      "MessageNullFromTests",
    3.17      "LeastCommonDenomColorTests",
    3.18      "StringlistTests",
    3.19 @@ -106,7 +108,7 @@
    3.20  };
    3.21  
    3.22  // This file is generated, so magic constants are ok.
    3.23 -int SuiteMaker::num_suites = 44;
    3.24 +int SuiteMaker::num_suites = 45;
    3.25  
    3.26  void SuiteMaker::suitemaker_build(const char* test_class_name, const char* test_home, Test::Suite** test_suite) {
    3.27      if (strcmp(test_class_name, "MimeTests") == 0)
    3.28 @@ -129,6 +131,8 @@
    3.29          *test_suite = new PgpBinaryTests(test_class_name, test_home);
    3.30      else if (strcmp(test_class_name, "MistrustUndoTests") == 0)
    3.31          *test_suite = new MistrustUndoTests(test_class_name, test_home);
    3.32 +    else if (strcmp(test_class_name, "SubkeyRatingEvalTests") == 0)
    3.33 +        *test_suite = new SubkeyRatingEvalTests(test_class_name, test_home);
    3.34      else if (strcmp(test_class_name, "MessageNullFromTests") == 0)
    3.35          *test_suite = new MessageNullFromTests(test_class_name, test_home);
    3.36      else if (strcmp(test_class_name, "LeastCommonDenomColorTests") == 0)
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/test/src/engine_tests/SubkeyRatingEvalTests.cc	Tue Jan 22 12:47:24 2019 +0100
     4.3 @@ -0,0 +1,179 @@
     4.4 +// This file is under GNU General Public License 3.0
     4.5 +// see LICENSE.txt
     4.6 +
     4.7 +#include <stdlib.h>
     4.8 +#include <string>
     4.9 +
    4.10 +#include "pEpEngine.h"
    4.11 +
    4.12 +#include <cpptest.h>
    4.13 +#include "test_util.h"
    4.14 +
    4.15 +#include "EngineTestIndividualSuite.h"
    4.16 +#include "SubkeyRatingEvalTests.h"
    4.17 +
    4.18 +using namespace std;
    4.19 +
    4.20 +SubkeyRatingEvalTests::SubkeyRatingEvalTests(string suitename, string test_home_dir) :
    4.21 +    EngineTestIndividualSuite::EngineTestIndividualSuite(suitename, test_home_dir) {
    4.22 +
    4.23 +    add_test_to_suite(std::pair<std::string, void (Test::Suite::*)()>(string("SubkeyRatingEvalTests::check_subkey_rating_eval_no_es"),
    4.24 +        static_cast<Func>(&SubkeyRatingEvalTests::check_subkey_rating_eval_no_es)));
    4.25 +    add_test_to_suite(std::pair<std::string, void (Test::Suite::*)()>(string("SubkeyRatingEvalTests::check_subkey_rating_eval_weak_s"),
    4.26 +        static_cast<Func>(&SubkeyRatingEvalTests::check_subkey_rating_eval_weak_s)));    
    4.27 +    add_test_to_suite(std::pair<std::string, void (Test::Suite::*)()>(string("SubkeyRatingEvalTests::check_subkey_rating_eval_ecc_s"),
    4.28 +        static_cast<Func>(&SubkeyRatingEvalTests::check_subkey_rating_eval_ecc_s)));
    4.29 +    add_test_to_suite(std::pair<std::string, void (Test::Suite::*)()>(string("SubkeyRatingEvalTests::check_subkey_rating_eval_weak_e_strong_ecc_se"),
    4.30 +        static_cast<Func>(&SubkeyRatingEvalTests::check_subkey_rating_eval_weak_e_strong_ecc_se)));
    4.31 +    add_test_to_suite(std::pair<std::string, void (Test::Suite::*)()>(string("SubkeyRatingEvalTests::check_subkey_rating_eval_bad_es"),
    4.32 +        static_cast<Func>(&SubkeyRatingEvalTests::check_subkey_rating_eval_bad_es)));
    4.33 +    add_test_to_suite(std::pair<std::string, void (Test::Suite::*)()>(string("SubkeyRatingEvalTests::check_subkey_rating_eval_bad_e"),
    4.34 +        static_cast<Func>(&SubkeyRatingEvalTests::check_subkey_rating_eval_bad_e)));
    4.35 +    add_test_to_suite(std::pair<std::string, void (Test::Suite::*)()>(string("SubkeyRatingEvalTests::check_subkey_rating_eval_bad_s_ecc_e"),
    4.36 +        static_cast<Func>(&SubkeyRatingEvalTests::check_subkey_rating_eval_bad_s_ecc_e)));    
    4.37 +    add_test_to_suite(std::pair<std::string, void (Test::Suite::*)()>(string("SubkeyRatingEvalTests::check_subkey_rating_eval_revoked_sign_no_alt"),
    4.38 +        static_cast<Func>(&SubkeyRatingEvalTests::check_subkey_rating_eval_revoked_sign_no_alt)));    
    4.39 +    add_test_to_suite(std::pair<std::string, void (Test::Suite::*)()>(string("SubkeyRatingEvalTests::check_subkey_rating_eval_revoked_e_with_alt"),
    4.40 +        static_cast<Func>(&SubkeyRatingEvalTests::check_subkey_rating_eval_revoked_e_with_alt)));            
    4.41 +}
    4.42 +
    4.43 +// pub   rsa2048 2019-01-21 [CA]
    4.44 +//       F0D03C842C0770C2C2A9FEAF2A1ED9814929DC45
    4.45 +// uid           [ unknown] Subkey Check 0 <subkey_select_0@darthmama.cool>
    4.46 +// 
    4.47 +void SubkeyRatingEvalTests::check_subkey_rating_eval_no_es() {
    4.48 +    slurp_and_import_key(session, "test_keys/pub/subkey_select_0-0x4929DC45_pub.asc");
    4.49 +    PEP_comm_type ct = PEP_ct_unknown;
    4.50 +    PEP_STATUS status = get_key_rating(session, "F0D03C842C0770C2C2A9FEAF2A1ED9814929DC45", &ct);
    4.51 +    TEST_ASSERT_MSG(status == PEP_KEY_UNSUITABLE, tl_status_string(status));
    4.52 +    TEST_ASSERT_MSG(ct = PEP_ct_key_b0rken, tl_ct_string(ct));
    4.53 +    TEST_ASSERT(true);
    4.54 +}
    4.55 +
    4.56 +// pub   rsa2048 2019-01-21 [CEA]
    4.57 +//       918AF6E986F39B630541E10DF5F7FA35F2BFF59E
    4.58 +// uid           [ unknown] Subkey Check 1 <subkey_select_1@darthmama.cool>
    4.59 +// sub   rsa1024 2019-01-21 [S]
    4.60 +// 
    4.61 +void SubkeyRatingEvalTests::check_subkey_rating_eval_weak_s() {
    4.62 +    slurp_and_import_key(session, "test_keys/pub/subkey_select_1-0xF2BFF59E_pub.asc");
    4.63 +    PEP_comm_type ct = PEP_ct_unknown;
    4.64 +    PEP_STATUS status = get_key_rating(session, "918AF6E986F39B630541E10DF5F7FA35F2BFF59E", &ct);
    4.65 +    TEST_ASSERT_MSG(status == PEP_STATUS_OK, tl_status_string(status));
    4.66 +    TEST_ASSERT_MSG(ct = PEP_ct_OpenPGP_weak_unconfirmed, tl_ct_string(ct));
    4.67 +    TEST_ASSERT(true);
    4.68 +}    
    4.69 +
    4.70 +// pub   rsa2048 2019-01-21 [CEA]
    4.71 +//       8894202E3D791C95560058BD77676BACBAD7800C
    4.72 +// uid           [ unknown] Subkey Check 2 <subkey_select_2@darthmama.cool>
    4.73 +// sub   ed25519 2019-01-21 [S]
    4.74 +// 
    4.75 +void SubkeyRatingEvalTests::check_subkey_rating_eval_ecc_s() {
    4.76 +    slurp_and_import_key(session, "test_keys/pub/subkey_select_2-0xBAD7800C_pub.asc");
    4.77 +    PEP_comm_type ct = PEP_ct_unknown;
    4.78 +    PEP_STATUS status = get_key_rating(session, "8894202E3D791C95560058BD77676BACBAD7800C", &ct);
    4.79 +    TEST_ASSERT_MSG(status == PEP_STATUS_OK, tl_status_string(status));
    4.80 +    TEST_ASSERT_MSG(ct = PEP_ct_OpenPGP_unconfirmed, tl_ct_string(ct));
    4.81 +    TEST_ASSERT(true);
    4.82 +}
    4.83 +
    4.84 +// pub   rsa2048 2019-01-21 [CA]
    4.85 +//       5EA5F7F71BB39B4F7924D1E8D11C676134F44C02
    4.86 +// uid           [ unknown] Subkey Check 3 <subkey_select_3@darthmama.cool>
    4.87 +// sub   ed25519 2019-01-21 [S]
    4.88 +// sub   cv25519 2019-01-21 [E]
    4.89 +// sub   rsa1024 2019-01-21 [E]
    4.90 +//
    4.91 +void SubkeyRatingEvalTests::check_subkey_rating_eval_weak_e_strong_ecc_se() {
    4.92 +    slurp_and_import_key(session, "test_keys/pub/subkey_select_3-0x34F44C02_pub.asc");
    4.93 +    PEP_comm_type ct = PEP_ct_unknown;
    4.94 +    PEP_STATUS status = get_key_rating(session, "5EA5F7F71BB39B4F7924D1E8D11C676134F44C02", &ct);
    4.95 +    TEST_ASSERT_MSG(status == PEP_STATUS_OK, tl_status_string(status));
    4.96 +    TEST_ASSERT_MSG(ct = PEP_ct_OpenPGP_weak_unconfirmed, tl_ct_string(ct));
    4.97 +    TEST_ASSERT(true);
    4.98 +}
    4.99 +
   4.100 +// pub   rsa512 2019-01-22 [SC]
   4.101 +//       70376BC88DE2DAB4BEF831B65FD6F65326F88D0B
   4.102 +// uid           [ unknown] Weak RSA Key <crappykey_0@darthmama.cool>
   4.103 +// sub   rsa512 2019-01-22 [E]
   4.104 +// 
   4.105 +void SubkeyRatingEvalTests::check_subkey_rating_eval_bad_es() {
   4.106 +    slurp_and_import_key(session, "test_keys/pub/crappykey_0-26F88D0B_pub.asc");
   4.107 +    PEP_comm_type ct = PEP_ct_unknown;
   4.108 +    PEP_STATUS status = get_key_rating(session, "70376BC88DE2DAB4BEF831B65FD6F65326F88D0B", &ct);
   4.109 +    TEST_ASSERT_MSG(status == PEP_STATUS_OK, tl_status_string(status));
   4.110 +    TEST_ASSERT_MSG(ct = PEP_ct_key_too_short, tl_ct_string(ct));
   4.111 +    TEST_ASSERT(true);
   4.112 +}
   4.113 +
   4.114 +// pub   rsa512 2019-01-22 [C]
   4.115 +//       F712B88AF525E4E32A2A24BCD1B86137C508F2B1
   4.116 +// uid           [ unknown] Weak RSA Key <crappykey_1@darthmama.cool>
   4.117 +// sub   rsa512 2019-01-22 [E]
   4.118 +// sub   rsa2048 2019-01-22 [S]
   4.119 +// 
   4.120 +void SubkeyRatingEvalTests::check_subkey_rating_eval_bad_e() {
   4.121 +    slurp_and_import_key(session, "test_keys/pub/crappykey_1-0xC508F2B1_pub.asc");
   4.122 +    PEP_comm_type ct = PEP_ct_unknown;
   4.123 +    PEP_STATUS status = get_key_rating(session, "F712B88AF525E4E32A2A24BCD1B86137C508F2B1", &ct);
   4.124 +    TEST_ASSERT_MSG(status == PEP_STATUS_OK, tl_status_string(status));
   4.125 +    TEST_ASSERT_MSG(ct = PEP_ct_key_too_short, tl_ct_string(ct));
   4.126 +    TEST_ASSERT(true);
   4.127 +}
   4.128 +
   4.129 +// pub   rsa512 2019-01-22 [SC]
   4.130 +//       18544492055207B2936BB215325776FBC027262F
   4.131 +// uid           [ unknown] Weak RSA Key <crappykey_2@darthmama.cool>
   4.132 +// sub   cv25519 2019-01-22 [E]
   4.133 +//
   4.134 +void SubkeyRatingEvalTests::check_subkey_rating_eval_bad_s_ecc_e() {
   4.135 +    slurp_and_import_key(session, "test_keys/pub/crappykey_2-0xC027262F_pub.asc");
   4.136 +    PEP_comm_type ct = PEP_ct_unknown;
   4.137 +    PEP_STATUS status = get_key_rating(session, "18544492055207B2936BB215325776FBC027262F", &ct);
   4.138 +    TEST_ASSERT_MSG(status == PEP_STATUS_OK, tl_status_string(status));
   4.139 +    TEST_ASSERT_MSG(ct = PEP_ct_key_too_short, tl_ct_string(ct));
   4.140 +    TEST_ASSERT(true);
   4.141 +}    
   4.142 +
   4.143 +// pub   rsa2048 2019-01-21 [CEA]
   4.144 +//       1E0D278644E2E293A9E953D9AC97F67F6E6C7B8A
   4.145 +// uid           [ unknown] Subkey Check 4 <subkey_select_4@darthmama.cool>
   4.146 +// The following key was revoked on 2019-01-22 by RSA key AC97F67F6E6C7B8A Subkey Check 4 <subkey_select_4@darthmama.cool>
   4.147 +// ssb  ed25519/7A03BDF88893985F
   4.148 +//      created: 2019-01-22  revoked: 2019-01-22  usage: S   
   4.149 +// [ unknown] (1). Subkey Check 4 <subkey_select_4@darthmama.cool>
   4.150 +//
   4.151 +void SubkeyRatingEvalTests::check_subkey_rating_eval_revoked_sign_no_alt() {
   4.152 +    slurp_and_import_key(session, "test_keys/pub/subkey_select_4-0x6E6C7B8A_pub.asc");
   4.153 +    PEP_comm_type ct = PEP_ct_unknown;
   4.154 +    PEP_STATUS status = get_key_rating(session, "1E0D278644E2E293A9E953D9AC97F67F6E6C7B8A", &ct);
   4.155 +    TEST_ASSERT_MSG(status == PEP_STATUS_OK, tl_status_string(status));
   4.156 +    TEST_ASSERT_MSG(ct = PEP_ct_key_revoked, tl_ct_string(ct));
   4.157 +    TEST_ASSERT(true);
   4.158 +}    
   4.159 +
   4.160 +// pub   rsa2048 2019-01-21 [SCA]
   4.161 +//       A2C00B12660CCB5759E6BF1854315D29D106E693
   4.162 +// uid           [ unknown] Subkey Check 5 <subkey_select_5@darthmama.cool>
   4.163 +// sub   cv25519 2019-01-22 [E]
   4.164 +//
   4.165 +// sec  rsa2048/54315D29D106E693
   4.166 +//      created: 2019-01-21  expires: never       usage: SCA 
   4.167 +//      trust: unknown       validity: unknown
   4.168 +// The following key was revoked on 2019-01-22 by RSA key 54315D29D106E693 Subkey Check 5 <subkey_select_5@darthmama.cool>
   4.169 +// ssb  rsa2048/B16DED0A115801B4
   4.170 +//      created: 2019-01-22  revoked: 2019-01-22  usage: E   
   4.171 +// ssb  cv25519/01B398B420DC3B57
   4.172 +//      created: 2019-01-22  expires: never       usage: E   
   4.173 +// [ unknown] (1). Subkey Check 5 <subkey_select_5@darthmama.cool>
   4.174 +//
   4.175 +void SubkeyRatingEvalTests::check_subkey_rating_eval_revoked_e_with_alt() {
   4.176 +    slurp_and_import_key(session, "test_keys/pub/subkey_select_5-0xD106E693_pub.asc");
   4.177 +    PEP_comm_type ct = PEP_ct_unknown;
   4.178 +    PEP_STATUS status = get_key_rating(session, "A2C00B12660CCB5759E6BF1854315D29D106E693", &ct);
   4.179 +    TEST_ASSERT_MSG(status == PEP_STATUS_OK, tl_status_string(status));
   4.180 +    TEST_ASSERT_MSG(ct = PEP_ct_OpenPGP_unconfirmed, tl_ct_string(ct));
   4.181 +    TEST_ASSERT(true);
   4.182 +}    
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/test/test_keys/priv/crappykey_0-26F88D0B_priv.asc	Tue Jan 22 12:47:24 2019 +0100
     5.3 @@ -0,0 +1,20 @@
     5.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
     5.5 +
     5.6 +lPgEXEbjwgECAKrQi4nib3fj2QJEFB21fxYXSH0AP48OrK5am/fHIZnorQGQInVE
     5.7 +7/Z3DWLguO6JVGgL22T4HQyHFhq4PCed0r0AEQEAAQAB/R75v3wrJFSk7Gr1RoKW
     5.8 +saujYEFOxLfgDN93TfZSVZ0PoPLMSuuACVlJnisolvy+qzO43Ijur0h5u9NCs4fR
     5.9 +tx8BAL3634H04e01CgDb0IzOh8B0yZOxZT838T+DzOaA4NyHAQDmLKv1bhbClDZ8
    5.10 +xSCEwfTOMtLz0Ne893hU8novnC2LmwD6A68+ErYGMWXZBr4Hf00Nrfxqidh/AIMm
    5.11 +H6ZwLj278tRYzLQpV2VhayBSU0EgS2V5IDxjcmFwcHlrZXlfMEBkYXJ0aG1hbWEu
    5.12 +Y29vbD6IewQTAQIAJQUCXEbjwgUJAAAAAAIbAwYLAwcICQoGFQIICQoBBBYBAgAC
    5.13 +GQEACgkQX9b2Uyb4jQuJ/QH/Yub9iPjUXun8rHcerpT+44MeV5kA/N4HeQy8Ucdn
    5.14 +t5v+Y30HelR+NKtHgM3N9WlfnW0p3T9Gh1+huOxbuXOnY5z4BFxG48IBAgC6RCV1
    5.15 +28OxUGyMTu6ezqYB5ukTphHgEqPy7aI73EgxI7knLwGCSonliFaevk28GBiqssKZ
    5.16 +a4/1Xod/EuOsSgzFABEBAAEAAf4oZCmpZpgHhdScEmu9RTuLcwq854i9yd0Ci1Rg
    5.17 +XbLL8L/gae2bzzToknCZ00VqihWuw4dMqreV+HptAc2VetnbAQDQRgK1HO5ZeVYV
    5.18 ++Cz0pM/sAo/eP4QXFo2/bJvGqB2HYwEA5PMeOrq2N5P5F6NRkQtm5s/VnNMiohme
    5.19 +ps9xDyQIN7cA/0uYDVxvxMF3DqMDsa+LQ2a1Pz4ZoMJRnMv76bZYQ00DUyGIXwQY
    5.20 +AQIACQUCXEbjwgIbDAAKCRBf1vZTJviNC4O3AgChC8ynK4r5FjXr3pgQMffw3VPI
    5.21 +sGgUyZGkTiOzRvgla2vnm7JBackX0zgWYeKYT91Z1YvUAgaXsOtg5+E/6/tK
    5.22 +=7Xzk
    5.23 +-----END PGP PRIVATE KEY BLOCK-----
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/test/test_keys/priv/crappykey_1-0xC508F2B1_priv.asc	Tue Jan 22 12:47:24 2019 +0100
     6.3 @@ -0,0 +1,49 @@
     6.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
     6.5 +
     6.6 +lPgEXEblSgECANCN0ls7KiHjDvhNtjEXubECaeG6WUWyiVjylfGd5C3DkCpPw62j
     6.7 +C+5I5iTAwWqhgCYFXx2Taa5bZfxhkyc5sN0AEQEAAQAB/RGEP+1SuFS1Tf4UBN/1
     6.8 +tq6D3eHMNZBRkRCr+2UaVl5zfjgLByh089KOTRkhcMmFRug+GgFkoPYkwNEY9A83
     6.9 +Pj8BAON6co/3W+hfgFlQ3RVvHHtiUvr0crrpY3spzGqNuMtTAQDqs/H7QLO4f1Be
    6.10 +KSK3ZuEDfA1BU6z6ojG0Xo6vz+E9DwEAtNQlExTHD7bnPE81Y2iUmPe8v+MlPXr9
    6.11 +Q343n58EnJdQF7QpV2VhayBSU0EgS2V5IDxjcmFwcHlrZXlfMUBkYXJ0aG1hbWEu
    6.12 +Y29vbD6IkgQTAQgAPAUJAAAAAAYLAwcICQoGFQIICQoBBBYBAgACGQEWIQT3EriK
    6.13 +9SXk4yoqJLzRuGE3xQjysQUCXEbmRQIbAQAKCRDRuGE3xQjysdbTAf9aljQ/Yin9
    6.14 +nHuCp36NSJ6Pz0ojFH4U/X9bdg0ObJMy9nB2kq52dToQVqAAeCrNoM72nUdYpMNK
    6.15 +/gjUkAuZWJYCnPgEXEblSgECAKJ6vLeL3tz58A5Rp+xe/EfE1o/N3P3/75c2ESDS
    6.16 +xQZS4E0zoZaQGOcdbhKwTAyhGqVUNaz29Fh6P2Sx1XCMAiEAEQEAAQAB/A3Dj3qO
    6.17 +AQBftOgFn0/NARqUUGfItOyYcoOw+xT4fePJ3XPzmUoYpvnnK0KG6OjrQp7Xl7ua
    6.18 +dG9T4fB+gVJluTUBAMq19UtJyqzsLBNOSSDfEiULc5i19guLqyeK1/F23RYdAQDN
    6.19 +MUnUsbw1KZzQH6labVuFJEhz9m4WnEMKOw6R6ahM1QEAgzMDoKgw1Jk9qS7cCgtv
    6.20 +XfJMs+60tW2JLcxW/r2VPatSWIhfBBgBAgAJBQJcRuVKAhsMAAoJENG4YTfFCPKx
    6.21 +vJ0B/2UpjsZ2rfUzz4fL+i6xV5hLLtuGxfTmcSDCYxUO6oBSFixYOCKLJ8Pj4PPd
    6.22 +Xk2WwAR/46hX7RiTwKG4VdwlzhCdA5gEXEbmTQEIAN9yhr8bxHoO0UOcaer6bHnw
    6.23 +dJgNmnqpTprFy6/dQk0e5WQsSndqtjhbcM1bVPvtBN9TRNu2V5KskHkIGi9hT6ti
    6.24 +nwb8RpiMmP2IqBB4TG775dDZFoPCIUgT2N9ttHMmEV5z1T3ihFrRZMgeK2tjFgY7
    6.25 +prLm8SPJYy8OHLXtZ1pgjGq/lfWr9FHi+aRPeS+kacSe5kbJdiBrTjQ2V/yXdEUJ
    6.26 +mX65YjFLfh7/mWueMG1weyyM50EjTV/iD+5qLunYgU0KIeMwPEjqlGrj0JSNjhQL
    6.27 +4W3SWK0B2tu2zhT5BD+u0XDug+ZVR1n09HCcE95/BqIqpCf5TJxHswUqLH25dGkA
    6.28 +EQEAAQAH/RnnT3qpL+pMfHL/l4HPnTK3rvSPoyh0JzInGvlcx5pkKgimX82fN9ep
    6.29 +thaAb4YzEH0JTLLB3T4aNjdpuotilxdRvAjVxyNZLUU7Cey63XWCSz6eZA9LOot+
    6.30 +DYa9U42DzMCr4f0mHNzgaHQQl00ANCXt1WHpBux0pMRoOOjYSEKANmKpaU54QHS5
    6.31 +BfIL/7ZgFEayt5jtXsN41La69UvchhqX1OlxcT6gZP84V5cBMn9iom/bjwNMt+RN
    6.32 +8tRhYUh/QvlIziH6h1+/jtAeFYe/f2cVEqS0sGSAA3G8Ng2gVKDaZippOWYCGskD
    6.33 +Iv3V5Dqdzo0Lr1CdXuZG6BYw8OS4fTkEAO2aYYfIQCQrJCvSzPK9TZJ1pJ2+Wznf
    6.34 +rGcbt1KDi9IYsSLB95FM6P0dVBxeQMVcBfh5k5xz5QMBI4uaV80OeG+mZ/vXAWVW
    6.35 +ZamJiYJUANxiJd1R2vdoLiOEu88jqEOADcvAtYymEouAhViklmduwRoRiy7VlGBH
    6.36 +89P/U3Muz4ZlBADwv49v2OUAL1JMqXcCbsZIe03Wc+CofM3sr+Iim8ZF3GwolrQC
    6.37 +7WTB4gkRFK8YdhOIObRfceM49ziF5qf3jWtxLO71uA6mFG+RyLVHKjm7Mb1BBVzI
    6.38 +Wm3KLxR6BSp3a+DfyZ2abfOOisblZ7+4UFYv/oMbv+oexCs473bS/tdDtQQA0wtF
    6.39 +OlXQ0EvidXbNG3urK6o2imOiSlRL3e41CkfkbLS7e3t5mgbMfP73UVNVDf2xFo0Y
    6.40 +vp5urVMFs4HolLe/it9t23G1k8OzKoAVj8inOetImGcNbkq1AJo8LxTIgSNnAllP
    6.41 +z0An+8fy4iN8v3CIaEQDSWstIm/EWP0+zKHwPCs9BYkBrAQYAQgAIBYhBPcSuIr1
    6.42 +JeTjKiokvNG4YTfFCPKxBQJcRuZNAhsCAUAJENG4YTfFCPKxwHQgBBkBCAAdFiEE
    6.43 +RGu+bZeUOk6WERPaRphZFzO/xKQFAlxG5k0ACgkQRphZFzO/xKSCpwgAvKNwZHlT
    6.44 +APkILWmappLE3r99hPfWVAE7p3i69T8rSf/7VhGQiOpFyrw6u/BGVSWEQ+av0NdQ
    6.45 +IsxHCHu0fmV4PIhL8sRE2sP0/0yr6vdriJA5Bha43dv2Iy/EIK4oZ2xwNhPL0l9W
    6.46 +w4d1tr1hX50TBoo0nV3qH6AYHYAebwGCghMhEkeVxH8PzAKnh+qM8f8XpwaOAVmF
    6.47 +Rolg7GCNuDzNl07cyGkVcAqy/lsRNAEow+y3SA6UhmbtDoH2qTYOqYHh3Ntav9n5
    6.48 +rTjwumiLLpbDNnIEnt2rIED48d3krokt/8kSNW1FXaybca51vA0r7m43UycutEJ9
    6.49 +A4fEKzoHeGZkdKdqAgClDYMTn8TgJd01MSlkwhsqqeniG/dEU0ZCptOaYs2GsGBo
    6.50 +byz69d5LKTqcrEbuafP5MXilLOSQkcfPAxli7j0B
    6.51 +=TUJ0
    6.52 +-----END PGP PRIVATE KEY BLOCK-----
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/test/test_keys/priv/crappykey_2-0xC027262F_priv.asc	Tue Jan 22 12:47:24 2019 +0100
     7.3 @@ -0,0 +1,18 @@
     7.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
     7.5 +
     7.6 +lPgEXEblegECAKrUcuK2FN/qr6tg0OK4IpDky/kJExGaLGGds2LNqSTuTPCHCCQ/
     7.7 +2gbxFYS60M8oaXpax+EWI4sydMzQR4qXo10AEQEAAQAB/RVGHsaH+WKHRfg4Nts9
     7.8 +JiTYMWSikirbgdJoQro3tWxBQscwoD3fjvzM8QQ90uAI88PxckYr2HCr2X4rNdUt
     7.9 +jMsBAMQjgSRjk9ihXeJ3iR/TlY8woiBwnMYl+diahjghGGZ7AQDe94svWLqIW1YC
    7.10 +MSlAAQVtFnoeGKCt+eP+O5VLG0miBwD+PfDp9sJ4EOU07/QFZ8dF7W/LWj/ByzuM
    7.11 +Gccl9jgeMBZPW7QpV2VhayBSU0EgS2V5IDxjcmFwcHlrZXlfMkBkYXJ0aG1hbWEu
    7.12 +Y29vbD6IewQTAQIAJQUCXEblegUJAAAAAAIbAwYLAwcICQoGFQIICQoBBBYBAgAC
    7.13 +GQEACgkQMld2+8AnJi8WIgH/TQE605yPZac0fEvzuCTl+k/vOCP1P1FkfsbUm+rz
    7.14 +vMnrslso3UFLJIclO9rmQQINl307+fRLXbuZ1Oy34wgtA5xdBFxG5xASCisGAQQB
    7.15 +l1UBBQEBB0Cug/QGjM5TjeKyg6niEHNv+DQZLCdFd49RHzSk896aVAMBCAcAAP9u
    7.16 +ON2eSiUMGZZUPvY7W9qMQ5mt4MAYsZjuG6xw6Rdo4BDFiHYEGAEIACAWIQQYVESS
    7.17 +BVIHspNrshUyV3b7wCcmLwUCXEbnEAIbDAAKCRAyV3b7wCcmL0ZzAgCQqosUluGK
    7.18 +Yn0mLBLLD6Ryhh1YAkehYyzdchOAZdDgK2vqHG4BIFmPVvdTDYtbFeZ3mqqcjs7r
    7.19 +1UXZAJtYuPO+
    7.20 +=2i1A
    7.21 +-----END PGP PRIVATE KEY BLOCK-----
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/test/test_keys/priv/subkey_select_0-0x4929DC45_priv.asc	Tue Jan 22 12:47:24 2019 +0100
     8.3 @@ -0,0 +1,32 @@
     8.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
     8.5 +
     8.6 +lQOYBFxGBkEBCACxp7qY+FhxQmHicXiVNz65bZxnu8E72iGseEXctVJGv/F3J8DO
     8.7 +RU2mJ+VbKkx3levnCTQPx3Vwg77PSZyu8TJN/Nex9xSypTDo6fMtdOSWLgcKIyIZ
     8.8 ++fcsW61cSs7xgqdx/JaNzmfmXEe7OwoXi0I99BVX//uz1ZWK7nj/YiJs+xuTo5S0
     8.9 +lgWNQ+h0CrbSu4jT8ANMhCHCtqz+biFYATV70Rv3RNz0yVijYQ3h4tuwdONfo9gH
    8.10 +BAoESdhEdk12LJGrgvnY5FKOrx9Q0oHxdmM8Qg66pwd32pram0jeg0cQ3SK8VmBP
    8.11 +vfo24gtKsn4f0oy0jYuxWEgOK1BjNKgepF6FABEBAAEAB/sEgHxbR4HQPu8lkpwM
    8.12 +ZfW+M6+gtlKPfnfXe8XDccnXtqH7E8QQRhPRZ9XpUUFWT3OGq4ZI9xQ8CW6iqJoi
    8.13 +mcSdUtCxdxIsc8CxSkpqBroLLzfo8xp4X4v6sQkL225yks3E9vJmvgoGfaSoszaO
    8.14 +ga4oTUDkNb2uYTV0q5Xf3OAD9G82AXDWrjFuSo+f9/XZ/i1hTQFq83uL/KwB9zrg
    8.15 +V+sY6zvWKKsNngNLLGOjsA/2tE6HynVH2CTNHB36zVXdIGnof7EvTeFTCOj+z8k/
    8.16 +Npqr+05fr4HV7rb3q4Nney+sGyOLk/viE9zxss0nNeHPBflZiAjpUh0B82g9zXVh
    8.17 +LqO5BADEGHtLxqDczaIRVIfvZF4cGcDgJ7Qe1qd2j4CWhh1j57WkRXFDTxvgxL2T
    8.18 +E+HkSwmCLjjgzfLlxhzAQ37WmewIG3xPNCyl1HF4bzWpbJIl7NShk7W9L9FAPlq5
    8.19 +YIcF2gb/GO/nsVQSI4IJ4DqltNUpm6yBhKnbk03tCD9GIACiOQQA5+0gN1aKqjI0
    8.20 +D9g+P/FiuU2kwacBVr6NYgkncupuVD5P1pa8BYGY04UgwNBwZDi2rtRkSa8AUS0d
    8.21 +71wie/3aGeV8Ns1m/1MyH+4ERQAUARpAA4YllNIlCe6buic5nsZqSjf+Y6UyXyUa
    8.22 +Rtt9vRJF5PcjfGt+FiXJ5btFDH+Urq0D/RjpSIodnM51YVznd24pZfDDHOQRE/O7
    8.23 +zKGbykPghH3zv79ZBK7tWEas87UnGWgj7F5RPF+zg6AE6pPWp2z8DYFHJ1ru5f+3
    8.24 +C/BiyzTQgkZCLccFgh+xPgwpn0YlsmO86zTqGiRZidkV5UP3hpNpW46S9NplJP51
    8.25 +9EUM6itNccJLP5u0L1N1YmtleSBDaGVjayAwIDxzdWJrZXlfc2VsZWN0XzBAZGFy
    8.26 +dGhtYW1hLmNvb2w+iQFOBBMBCAA4BQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE
    8.27 +8NA8hCwHcMLCqf6vKh7ZgUkp3EUFAlxGCMQCGyEACgkQKh7ZgUkp3EVWRAf+MCTJ
    8.28 +Z/gIitYdJsGoYIEm4bs1JO+/lKZFSLoCtxtcIIFBDqsVhitDC0UtNyuD7TRXanNL
    8.29 +XirlOTN/uYKzP/IFiU+q0KoKihNWn7gK7tPdAQ5uwQZb/7omUZScnfPieurPuKAS
    8.30 +H4q5XGcqecET05FE/JORxEh57aD3/ILW1AakEeKgfC240Z8pEO5bTMda3BV6Va0H
    8.31 +GaHsq6GylvzKj2FmcxpbBbrUjxvat4oshTNReYHL2C3i4S4hALJCLO2/8pQzNqof
    8.32 +itRkn32oR7+PyYgXY2nnjPO7+Mr6J9Jgr237mzBeq/dAt4qlY5VI8tD1LfVh62tq
    8.33 +y96bbenIL8D8xOHWDQ==
    8.34 +=Aa/E
    8.35 +-----END PGP PRIVATE KEY BLOCK-----
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/test/test_keys/priv/subkey_select_1-0xF2BFF59E_priv.asc	Tue Jan 22 12:47:24 2019 +0100
     9.3 @@ -0,0 +1,52 @@
     9.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
     9.5 +
     9.6 +lQOYBFxGBkcBCACzk5CHhKqW0iOYWLo82kQEg+SC61mnxZcwOpad008YbQB/LXRl
     9.7 +4vlxssfZy8upfazux7lMNvz+OlwmGWt+PiVUqZmfWtOkMtKajtXfOj2hXyKOvcib
     9.8 +P42N/D9EGXgo723XAnx0TRRjf2AmP/w/yHkORGBNnLLek6i5J73pnK2x6FtzKITw
     9.9 +8akrX3nwGVhC3DYd1Hf/pdTpl3mp8Lo6bI10rpSMmvcp4/Ie5uJ16LxO04loLAi5
    9.10 +Ic6Q4+YX5WOOPHvdY09w059MXZocuomEmdY8PIvoef954k4+KZWmYpf0SKYOscQc
    9.11 +uznCWTMAQAdRNDjvX49IswRZVBvJYVPHUDGpABEBAAEAB/wNWlR9vIqCGCe9F809
    9.12 +YiN69yMM7cV8ZAUSeSt4RTKqnSGo00SboOLYe/6VU4Hrh/n4cBHMuNgGFWktt2fW
    9.13 +pXYEKMT7ZExmzL/77dFkaGxrF+u2E9GbYwCPxWkfk19BIqXsaMsVS3f6erRiaRFE
    9.14 +3Y921UnDQPrMnHaIJ2GH7KETyz83hbwugUhJ4+5ANQCBALr+iraVxMGkaBPCQobf
    9.15 +S5W7CPJOCL3q0avb1KVRTedIkR2CNN7ZcDWLUuNIoWUSdUoP7AQFYBkIMN6OZkch
    9.16 +yl5aYt8sn9+cy6aHeD1MkUGqRaiSeYkeg/A7HR3wz0MSrJVWZkj9arhmh2+jW6dX
    9.17 +k80JBADLgRu1s9iOuo34+VZs1+4CrEYTZ8VqqEYc4mIExYkgG3U9dDYOC+HyJjkB
    9.18 +uk7JJ68g2k7t4eSCWiWdq6FIAlnLHvng0yxYyNA1wIau4YkkHj9jNl0FiuItFysg
    9.19 +tagfF5SuEkt4QQWDproSaNzbOMlJqXBA4npx3pRi59Ilah8n5QQA4eZR/jLtF4Hf
    9.20 +BgNP6ipYzGd1hVbrbx+Uk/KBXgsAokcOUNGT68sN4WN6SrYOay7BicOcYbwacXmn
    9.21 +5fwSxxKw/ldAVA69tjNSnxGWt/z3R6w5/0zfJErQSlBknlieDqp/+Dld4txGoIXk
    9.22 +7DhhXbT92aOws7TeZGC4BrFRrmQrvnUEAM94M+i7KqREitHDfia6hmdeNAPSOkEd
    9.23 +zMskvPuaJFljgijCqUHKVbm4XmMzlC8fMB1aQWHjhuGK0RzWPimm1TNeJV88pWDg
    9.24 +yQS7E+046Q5fhEQ9FRKCXRnwNs4Eeuy9GjPkguyuvwUK8opaP4y5BbsFbU63tW+W
    9.25 +S624HciQ2Ct8OJ20L1N1YmtleSBDaGVjayAxIDxzdWJrZXlfc2VsZWN0XzFAZGFy
    9.26 +dGhtYW1hLmNvb2w+iQFNBBMBCAA4BQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE
    9.27 +kYr26Ybzm2MFQeEN9ff6NfK/9Z4FAlxGCiECGy0ACgkQ9ff6NfK/9Z7IZgf4qLkK
    9.28 +YeeqOmVk9HARqcyhYYhBrGOF4VaLVW5lJES5IzK+kT9wc6V0qGrqTqHrlLRCATiV
    9.29 +Aths/Gyq+eUbHFT68WQ9+2BESyt9/dV36QQyQ0tdgYK0x6G0anzUYjpwac1zW4M/
    9.30 +v5mBDFqhTbfNO8FvRsU6Yctmgw07q3OFpZ6PBAOXlfalICzZ2RNzRCEOvKhZMuzf
    9.31 +UVH/GfXceXBDn5Db1jFkjh4RJCP0XUaAPV+pw3bO2Sn9Ype3h0dqKE0G5K1QVKbM
    9.32 +rH8LACR6WSXbGdjUyB+uXcqnUKBmaIS5p5oKOMU+xaATM24t651FhOik7uS4gBdv
    9.33 +REr6yp1ae05g04eTnQHYBFxGCi4BBADa2zESBybF1cT3QqoEoDMLyq0tJOjrEXPF
    9.34 +HmkB8TBWjQpQZD29jXPk+Q3EPVCn2xA3oHDheockOlIJX27a4l2rdDTq5wW7q8C3
    9.35 +Vu2KAXFmsoVA7tEJoSDwm/V3KG/JZEJis2+mz/OYK2KB0Fpy3zQX1fanKRwVfo1d
    9.36 +sazhFQjbWQARAQABAAP7BvlyPGFW9noD/18z/NbAGbGZSDWDaK5TMqZv8Txm7nMr
    9.37 +L3mqUAaYeWUIb8cGcXr1LtihkEXv1ZM4Nw1AAqCxHG0LvdsI1NONM2LKBfe7ImHP
    9.38 +3GtVJN8ErwoO1pGIMjM2MG8RpqUSvP4aDk5w1/qHs4pdPJyQGQCg8/QfsjI9xnMC
    9.39 +AOMp2IxOFrIQlEZNuIDMZqpgo2s0lEAMxn7nQLmOhnBjGWH5avLi6md8ACefvhre
    9.40 +IQ11pj92lx0vtIi9Hl2C2psCAPajYmyHfTa6QdUvoTzY9V/Q/Xem+Z5r3E80QcmN
    9.41 +wkJVnZ5t31o6xouSH8hV5bCzmnm3AFMJQzWsSH/TGZHVtxsB/ibXietdyWTX2kPy
    9.42 +Qpj4FvRAcvONHTbJp8EXVIQkLRKUNZR7E3zxLySpRD4sKEBohCgkzWWuupM06JC6
    9.43 +cZ64UcecTYkB6wQYAQgAIBYhBJGK9umG85tjBUHhDfX3+jXyv/WeBQJcRgouAhsC
    9.44 +AL8JEPX3+jXyv/WetCAEGQEIAB0WIQTZpr5HRPjJJV6vGvKUbbiK2DrcuAUCXEYK
    9.45 +LgAKCRCUbbiK2DrcuN00BADQB1V+lYhcbX5XNZUcnvaPyXJCCmgbrtRM+SzUtkJe
    9.46 +IBgtsCfyo6Z3fSq3vl7s9YB9S8hKUBTzzeTi36i2fwlfcGMFgvB7N0qHJY3mRlzo
    9.47 +JXG2HpM55WELIp+HmJx8WKk4kYQWzFxarclm0u7hrSa01vwHcLu+751Lkslqe/83
    9.48 +D8IACACf499BLxGvC3W537gED9GIOousA5rB4BCdFvaXdfpXu8EYFI+cW4QSgtF3
    9.49 +lSp/7g5ggKkRyUtxmAcNBdw4V/1wpzwPvk6+0RKgo2IRY+r6fpiML5b4ULuzT38E
    9.50 +X2CwzwNerYuAvJM/u7BkzzmP9W0ZxkFw2xBTEvLFMvXyXEGNMllenY/aP/zX41lf
    9.51 +X7o3Y6Zq1/VIbYTwIxb6FyWWzNb5xpe5er8umQ7Dxu2pL+0xmshiFjIPymxaLLEk
    9.52 +9kCOqrl8q9OHfxswJvZu0bDikNOV9oIjjJFkDxQGirE/+zQFHxca0nnqwlkghb5m
    9.53 +kTdnvrwnWuCV33IV6KVBaQNojRlZ
    9.54 +=DSim
    9.55 +-----END PGP PRIVATE KEY BLOCK-----
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/test/test_keys/priv/subkey_select_2-0xBAD7800C_priv.asc	Tue Jan 22 12:47:24 2019 +0100
    10.3 @@ -0,0 +1,43 @@
    10.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
    10.5 +
    10.6 +lQOYBFxGBkwBCACQa3Qt8LaXvGZ1WL7qJyjeKNd2xW5y6DO8+6Sm6AxEdRSkEg0w
    10.7 +DuceemwhCl8p/VlLsUsqnBXqxR6j4cKGQkSsmvZhZt6EFcPD9/OU1CovcbzylJd1
    10.8 +C8bxFypd2qVpOh0i0lOfhbrtbzCocoDVWZ4rfiMPUWy6E0HGfEcxU8GPMOSIsdbC
    10.9 +vnbZbZrgW8VK8f+vjn4FFrBtMF3Xs1LGwAuzSdTYW68Be7k3MkKKkJl0QrTEzIxo
   10.10 +IEO1EZStmo8VM8nGh0rLe+mQI9TaN/Jn3DCE4m4gmS37hyl4+MPkM7jEc1eJ8DAa
   10.11 +EYpnDoTAs58OBpuHBzsXXvFL/hA5U4rMl9mbABEBAAEAB/wMzGD9iJVTNBXWX2N9
   10.12 +Ml7g9TicT28ezWzMWiFOI0ahsx3S/ms0b5WpcfWZe1GnUcrd4Nva7lMo54gew4KE
   10.13 +Iw+dRkGrAb1FclJTexVB2AgsWoWBRTbONMQlbcVKOkv/W8WPkO5qjCTefBnmoPhs
   10.14 +L9F1uZYXekKgPir4O9+T7lVlwDA5bApDqwHRHqaDjOgUY6vb7ciBYNZj8AfPDbwo
   10.15 +hXeJZWs2BJrcIpxGyo8p9sv9QPdeXCnmUy/u6ABv/T56njx/p5nw5g7beDJazZJh
   10.16 +65SOXqPMNpMVbABL9Sw5YHTorGuCob5rKa7W0wgzFgIOaNKJPXuHKaMwNvfwJdi6
   10.17 +MohRBADAMbPK79TOwrCNASFZBHGWharfV1ncniLg2UrxXyLZs+taNfbYo0TorBV3
   10.18 +PvNx3B6V+t9RCOC0yFmBOA14gQbHo7P8V6nn/fDVPbhDQklFpiyZ/+dMvvin9mzV
   10.19 +Jdcv9VKgz0CbMPgRZQp221fwLPIOiAf0B5YFlpF7eo89hOiiqwQAwF15lRbry4l2
   10.20 +GMXE47b+SapKZDseYC+2d3VOqoT+fu1/SmpVk7I6llPYbFPSULW6HRlzNiJz9qbX
   10.21 +zByBN8Lf7p8Xu+RJUoq5vTySnXE6kDe0CTvll75KVDqCWEmCTeokBNda4gAcffG/
   10.22 +zh+8+PqIluz34fRAJut6uTUkONNhJNEEAJ8rO2MYmWpCecpo2jnp2KqQqiaBQX5T
   10.23 +p9n9CL/5vcza6POGqpI00BQ3P6jhrkgcu4IzGL9g9cNt/D34SIzWEGdcI/RDEwR9
   10.24 +6+xS5JBbcOwtGaSW7oBa5EyQ6mPTLwpqexfWzBRSU0oeyPUJcFs8qVv1TRSj/r0D
   10.25 +FC/TBswOMV5MRd20L1N1YmtleSBDaGVjayAyIDxzdWJrZXlfc2VsZWN0XzJAZGFy
   10.26 +dGhtYW1hLmNvb2w+iQFOBBMBCAA4BQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE
   10.27 +iJQgLj15HJVWAFi9d2drrLrXgAwFAlxGDH0CGy0ACgkQd2drrLrXgAwt4Qf/VbzQ
   10.28 +FNxLHFqi6x2mffvPR3gUtygMyv3EjlH8VOyDuDmGu3nCm7Q4LdtjtVhDRYlmwaQH
   10.29 +lVp2JxRWDVPUpru7fKxMxk7H39oGoh85VItJAyqZZhCbal2FM/W3j/+pnig0Q2kN
   10.30 +oCVlD3WZg13Ejw/cw7z4zasaT+O2AJ9KzRNw4Hk5FEnlhjuSCLdox/oMCe5RM5Nm
   10.31 +UazC5m4ejpqE/hryLzp10PjCMJCXz2fMrAWMZbVWB5vmioP6oR0UjiJdfnEPjjJ7
   10.32 +L2w7A08j6kATh4+hPG2FXbox6J3tBJ1flwWcZGiTUYEzxPpq3ArOqUEypddkNdrs
   10.33 +hMQnwSjBJzdFlR4beZxYBFxGDDEWCSsGAQQB2kcPAQEHQIxutjFIiJAtLbBcHCnX
   10.34 +U2jM8JJ8Gz8aGeq2p9KnzVCrAAD/Q84qakEUlqTydLlNFaKwPxSQMa8yU/K0H15X
   10.35 +UqiaO6gPP4kBrQQYAQgAIBYhBIiUIC49eRyVVgBYvXdna6y614AMBQJcRgwxAhsC
   10.36 +AIEJEHdna6y614AMdiAEGRYIAB0WIQRWH8vG5CqfqndZdeTDVOVYIRxyngUCXEYM
   10.37 +MQAKCRDDVOVYIRxynmFFAP4vQjE4j3g1965DVPhMMpmfJ1lhOmqTZBjB7ivDWIDP
   10.38 +OQD/fSq5SYLRJYFnHT27WEFut0DlwDu8/IHxsex/F00oQwLcPAf9HYxMGJGihaDo
   10.39 +PzEUZXCTBhjCoVJpah7JPe5NK80DtRn+HmuQyoFuxUHLKVQb5QkWm8diZQk0/Lf2
   10.40 +Dad9QZttDycK5EKfbVWE6TlS8bCbJkGuhtP8qcJePT5Glo1xQrJ64Cb8Moh3Xkih
   10.41 +WggZdqO7EKEFxrpDxbDXLjoq2emdHM3VfjtMwqLm+TFbU1gN9womWSucTqG52+Pz
   10.42 +4odazRDC7vsH6+rPl4xyn/gjBBJm8HFxvw1ehoTNFqxUOIgicfnDVsJzcn30cC0K
   10.43 +YPRFKal5dBMuhdCeogKbj6/HOsr5IiPnTXl3g7sHFIHmHPsYDs/CKGwqkToeEFkz
   10.44 +TmswobwksQ==
   10.45 +=c+dd
   10.46 +-----END PGP PRIVATE KEY BLOCK-----
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/test/test_keys/priv/subkey_select_3-0x34F44C02_priv.asc	Tue Jan 22 12:47:24 2019 +0100
    11.3 @@ -0,0 +1,68 @@
    11.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
    11.5 +
    11.6 +lQOYBFxGBk8BCACikTVRrTEv3Ak3GBm6qNvODY2/P6gksIGgFCqWf6igu2xcBFq/
    11.7 +lNSVXTWUBSHKJUTXujizohDj+uu8ptRxiB9pIjCED10rP0pFhknYRXVInfx6uxGE
    11.8 +ToZ30VymvyVFw1RiHd4Fxg7fg3ri4+8rli+DxcgpiXySusibasnWjrUJMBDXMFl9
    11.9 +LpKCXaS7HNuNQqNYImbM2x3X3q66XOgPb7VIzj8nqdCugASTrCOMZvVytGghPATl
   11.10 +03JzFDPmzbVyxQaGPCqOe9eLVsy+YEvQaZ86qPUiJuEJ/7+ScwvB++kjWi/J6qTR
   11.11 +4SeghWPJr63DYwy6Xo6cx8Bkvhriy+JnYIrvABEBAAEAB/wPviUeMDnrqxC/Y5eW
   11.12 +QmTqytg3tYfoaalb4agQI/OmARBoxsks9VIy1rBqEacohrxocbGs/5xIH5P1lGhN
   11.13 +SEPWcAenuj8pAXuFSRBcn7lQW3BISFZVbC9MahthUHBhFZ3V1JOcFoZ5MafUUgNm
   11.14 +wqf+SEhucVB9exYTKt+55d71MSljQ/e4Dn6XQQq88871uD69D/EVU/Dw90oUrUnz
   11.15 +Ty3U3RVHw2GtK9DUHF/SfK8Nc69u3IMpjpRmdd/zIGtnrT/mhucCFkwnfSjn7tEx
   11.16 +U4XGgNCbsVMDDStTn669SMD/VuBJ/O5ct3PR6BTc/gpTKQuTAjY+sUaneRbvKpOT
   11.17 +vqvRBADHzgpWllmvCbZc9x7vIJwfUsGQlSS4QbJHtL8UYke58oS/LY7LY5IyFIDS
   11.18 +hhCI9oVYbMFmWRd8dO5I8M4PjTogcv7BwP2zoS7hb18hwjUZ0BNoCVnZwrjZ1HQp
   11.19 +d+QpdQNeGmZG7JtKGM8UTAWV91MlfP1SST5gXm2ZvXcXs811XwQA0EoOjk5ZMEiQ
   11.20 +7xB4JhXWJ9aPR3k9QN0ENFwazngMCufOljBVFqfdv3XnVLN27xdpdD5ajOEW9p3K
   11.21 +qJYFhAzDpmlyy1OkVHLtO5iXO9ahyl8qRRg9KFb7IQF/40duR+VdOj6+3JvjCaoq
   11.22 +AcIUh680wxNGw6Qree5npD/Aa/oNxHED/RT71bza2n+YKaTZG7ZDzkEtG6+aEooN
   11.23 +zWpTiD2bF7/hnS2Y5YAwaE2NrreI3dL0x+aq9PQEZBKWna7vhvDaBiGSeclafOc0
   11.24 +dSxowA9BDoiSV7DFAuh3hEOsVQyjjGUcagv8FxkYX5VCEq4lJf5qhHMuDeqMhZXu
   11.25 +HsfFsURIqoocNmC0L1N1YmtleSBDaGVjayAzIDxzdWJrZXlfc2VsZWN0XzNAZGFy
   11.26 +dGhtYW1hLmNvb2w+iQFOBBMBCAA4BQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE
   11.27 +XqX39xuzm095JNHo0RxnYTT0TAIFAlxGDVwCGyEACgkQ0RxnYTT0TAJHfgf/S01s
   11.28 +cxkskxHWeXwUfVeb/iYbX86TtIB+AJfsiw5HavSQVdH2gU9m6ZSm/yxM9+WRU4uA
   11.29 +RaiXRd2HXCMwqx3IIkPjNlNSyB2xyTLdsddCr0+Tfw09ELbgqn9xZk2d4+EB52QO
   11.30 +2D7sYfjV6Rd/HBtEfvihr0DZtXQA76TTl3dMUVPP/lq/FmaGFaFEROtnAKkOnLhv
   11.31 +cNAQVFuVmZ0cZRR21r4qeoblOvSHAWqMSSQ6H0f/xkPJj7qOqGoBRSjyPdLBogQe
   11.32 +YaIQTDChtya2WCEqKTF1qPsGyUCLYJW4ieFLXirfQqFkuGgh3sflWSwF3CYH3/m6
   11.33 +w3j7aAuVXTVQjb3qk5xYBFxGDV4WCSsGAQQB2kcPAQEHQK1WjaIbAxPLWtVDwrGs
   11.34 +BTXx5xmsPko0/7acLzBEPGu5AAD/Q3AYePqEt3mQkSZvZIJx8uirnQ1i3dn+Xv+V
   11.35 +7agDZiYSWIkBrQQYAQgAIBYhBF6l9/cbs5tPeSTR6NEcZ2E09EwCBQJcRg1eAhsC
   11.36 +AIEJENEcZ2E09EwCdiAEGRYIAB0WIQSoApShnz2Mo/d2YoNaLJmUAdrVJAUCXEYN
   11.37 +XgAKCRBaLJmUAdrVJMKkAQCGLN1t0q/2PpPH2pSGjxV7Fx+JVTVnOzJJqOgbligZ
   11.38 +vgEA9yg+XIe32fvppxa5Hj9iVyrAbxHSt/SMa5aAuoSnAgm1SwgAidW5rtpCgmdK
   11.39 +D3uEh0gp3aLnpJqx5WeTkw57bIgzHouztF9avCP/Adg8jwjUUt7SsHoRNN6D8w8Q
   11.40 +AcVelf3FbqHtCFrUnMteWABdbLXoOHg1c8l+mnIfDt14QoOQszBYhOAdGCt7fyh2
   11.41 +Q2sZCwSIxsIlVK7d/pjZ2UVBGfwArxVHHLwcBhJA/g0M6Bee0Ak6gixdRcV56+cN
   11.42 +b/S+sbMXC1RPR21D0pTikEvydRhnFozcLmOSAUj2wc6d0UAvmVmP1G8fhgyjSZ1H
   11.43 +I0tnqhLgubYwLKinnpjkdF0yFqq0Er0hNLPIbM41UENj5BQyucmsfMV9GkewPnWY
   11.44 +4+MP5+KtMpxdBFxGDZMSCisGAQQBl1UBBQEBB0Dr6TTal9yPtgRTA6lJpNCca1lI
   11.45 +ZUrlY7rXd6QGU1xxDgMBCAcAAP96xpYMKeDFyT7TXf+yaW30evDn/T7XvZnvL+Tv
   11.46 +/XeaIBU5iQE2BBgBCAAgFiEEXqX39xuzm095JNHo0RxnYTT0TAIFAlxGDZMCGwwA
   11.47 +CgkQ0RxnYTT0TALBwQf/RJttjrzJWxAmbTtNTYUrs3ze+XLN0u/XN4Hrl0Wr/g/a
   11.48 +0+aV8c76ju3jHLRK9NqidediKiuzJL8d1KzgapNBjBp67RhPrusRIplo6YAggSYg
   11.49 +5ZuPL6zqLe9ZZ0evhdltUeCRNHegwLDVVLp8xw0T3jQPdSuVGqI88iu2/go1f1i/
   11.50 +CyjzwzDNVnYzCYozZsrF1+CRyBsAsak85F6xWgIr4A7JqZ1UUIAAcZlPUU27szFA
   11.51 +w3QL/dBpxfejlXK+AYOsM3/1eXergfWxyJo6J0CAIXA+9tCbOuXbIbJReEdfdQwD
   11.52 +6vke1icWTwrXsh4Zt3Zag1sXq1Pe69pYUVSvglHYlJ0B2ARcRg2qAQQA1LNWmbgS
   11.53 +HrqI3T8vYGg/18Cf5B9klY4UWuAj3VsdBJVxp0ZJwzmk/N+0b2XTuWd8iPlHuGn4
   11.54 +Plqk/zf+C9YuWOtXUCuRGlQeBuTs5LVgV2QeFf/Q7+mZHOmxOPO2gTlPI7S3TcQR
   11.55 +aB0nLYSUK/11EHHMtauy3LZtmdqzazKdJm8AEQEAAQAD+gIsTKfBY6w5ld6ZPDbl
   11.56 +7xgno94aVOSE7Yb57lzClVH6cjfrgJT5zDwqCHr/UcVS7DqSBPceBu4hfLkqWCs2
   11.57 +WE0T8AqmJcj5RyaaF/36/sdKZ7YrCrTrkja0zmrn07pSfI9pte35J2IzXidQtUmX
   11.58 +Q2G7m3HZjjwOHWN++PoTTEyBAgDjGo4004LnfpcLt93Uob2e9uZKjIbzcFiqxkGa
   11.59 +sHVv4l00SyukB0lUuYtfeT693sP1XLbAYiN+piUxFau4dWFhAgDvw6DBTS2+/ctO
   11.60 +D95lmEHNsPNZgp535G75wFbBSeBJo8lJckljv22DYtYnbHbEL4jxaLn4SGA1898S
   11.61 +HMuFpwnPAgDkGGuUc7zYqME0xxw04GAvdPJ0MW2Mm0gLwqeM75GSI3oOBUcKSFrd
   11.62 +TSYLjXlMPTLXYOrxxEFkVaWRPleUPrj0pHqJATYEGAEIACAWIQRepff3G7ObT3kk
   11.63 +0ejRHGdhNPRMAgUCXEYNqgIbDAAKCRDRHGdhNPRMAoZiB/4rSiCXB5PJMAQhC2B3
   11.64 +A5pYQL52kP95+ru4VjAUINmpWb/puycnQInTu3afKsFHRV/pBMBRbk1yI3u7NGt+
   11.65 +x3REr14KL/k5e2q+MthQPr0Hj13jAToZsc9+9hZzlDl2fuje8qx09hLwZ0qqmkAm
   11.66 +7LzSliMLeot/qr19dioKSsdJWJdOSpsHtEUt0tO0wbcBXlfE5NRN17bH9KgOb1L1
   11.67 +15BvklWlglP1AplIvWIc63ii76MCohW6Sth/QiLOmVBqS6trkQxyYa0GOGnkSBkC
   11.68 +8Tn82MMP8AMlGgpdFykb+8xYNvHCcCJrJPI3ABCamGe2DBH/aIbzTcMXc666+8yP
   11.69 ++rtx
   11.70 +=IIBT
   11.71 +-----END PGP PRIVATE KEY BLOCK-----
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/test/test_keys/priv/subkey_select_4-0x6E6C7B8A_priv.asc	Tue Jan 22 12:47:24 2019 +0100
    12.3 @@ -0,0 +1,49 @@
    12.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
    12.5 +
    12.6 +lQOYBFxGBlIBCADQ0BAuaVLY6qVfirbMzGVE9o7T9vJcRuLU5UaQe2xVS/qswu6T
    12.7 +q078R4ItAOItaSUhP081MMZNHCZmMHtJvnkgGCQfGdUnUntbx/McetnNHanXOFtX
    12.8 +51H6rBT2t+0kFQ1FcofG3jXlOgEi3ISqv2MBfkhFG+feVmc1uCcxp4A2pFp+cLhv
    12.9 +nWIJ7ksvKyGM+tbQOIpY+ylYcFWDqCzSZ2nv97U0GMVY4cuKEZpGB8ArPec8X7EM
   12.10 +WSbM6rCHsWSdIO4XrwYazQZeBnIUAN44h76SkSdNuSqJgasXNmJFaMoZtZ8JrcCQ
   12.11 +Zrre+z6CBDr+Zsn5PoqK16TcYZKxRv1Q5MczABEBAAEAB/9lMJ7WzuV+Bt/TF/aT
   12.12 +8m0U6WK3p1E1lIhx4RW8CIOsJiC5PdG9r+Ob789OncH9fZmnrfVlclh2n7CgDtiA
   12.13 +GRS7j9dZVvxrjNYI2TGf2IzZkIlwqXfidk/M6T1TfjgmJymCQQk5Pw/hIKXSTgjg
   12.14 +cdS5sYe2LdrEbRyg9LfRoTlJwKTpdBZQcBbHUIuYWij0HMabOPW2ZgJKTgGdzLuo
   12.15 +UdIHTlCraovpSX+LF+AMQmMbQXVuSnO8bvSSENe24xHeOv7hA6QtH9E2puQQTqR9
   12.16 +cAPVrcNa1rBg8pWi9EeqwocSMz/Pj3dKj4sF53xK/JSrmzL6ArNguZUQwJziQZ2/
   12.17 +M6c5BADVfcJ2dDMBNoWacStxETAJMK0msIg5JD3fGckaEFAnuuM3U5GDrQfD+Ipo
   12.18 +WpUsEJwohEvjU9vihiFHz0nO9x5jB1oKoHM3Kq34xBlh4B9jJC+pbJptVGi10nPB
   12.19 +pzbO9f0A6xbTJljVxv5HUESoFwaICbwm+CWR/CSqMglUJD+rbwQA+mPT0H/NJPKX
   12.20 +3MVFgj7COpiPMciUyaeyVIclIh0HJHhqmryPSliQrbHjctsOgHy1vwLhtMHwX6Jm
   12.21 +w48Brt411SZRP6pUBOGPkjO100mYlxlX9rRbziVY3/GVHqWTyG6Lzt9HTg/bNmgR
   12.22 +MkaHpLNJ7LliYHM6F4AFFSmXgWVyDn0D/0zjTLGWQL22TmtzlqDPq8twgzrKqyVR
   12.23 +Y5LBz8U8stfcBy/8GUWy3bWgp6mUTOywzolR2CXK4qf0Lkie9Ooi7veo2hRNyogq
   12.24 +QHsy8IGtD2KgwDFrGRHD6K3eES/kbiqQvGPKc8z8JkChYFk9nzANbkj/UILz/6YL
   12.25 +Oqh4mCfqAJnPQke0L1N1YmtleSBDaGVjayA0IDxzdWJrZXlfc2VsZWN0XzRAZGFy
   12.26 +dGhtYW1hLmNvb2w+iQFOBBMBCAA4BQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE
   12.27 +Hg0nhkTi4pOp6VPZrJf2f25se4oFAlxG8bsCGy0ACgkQrJf2f25se4rBFgf9GFyV
   12.28 +dylvzmkeHcf2AyL/+9xXtwhIowp45RWBwyYum4kpbeHa7pBBBCYthDRFpIE+G22M
   12.29 +Cf1cPEjoGqvRbBO2AusozVeqQ2kQ4+Cb2aC8I2Em5+7aFgUSN0VLEKi/9n8eMu0z
   12.30 +WBVZo+QCGOXAZ03tlvatBd+awNniXQii3G49roOdGzdv5v4hA/hyCl3IqIaJIpRK
   12.31 +z1gEh8EpkapJveTYCVH7azZZubunX1O7cOuDxs5IOZWQBijiXA6jXsqMI06VJjX/
   12.32 +UVeUViQbywmlTjnRwImAyZsWPDByCPR362Ar+Y4k1iwgw9TDnqmnWiCBT6NwaWFl
   12.33 +VjmCWavVGuU/tUWjm5xYBFxG8cAWCSsGAQQB2kcPAQEHQPT1C2N0d7S7xVo9hp05
   12.34 +oHdabF9O7OFbOFzljC3GdIwdAAEA6IiGfhtMFvL94/W+dVe2k55WJ7PAWq+exSR3
   12.35 +/7oEgboSGYkBNgQoAQgAIBYhBB4NJ4ZE4uKTqelT2ayX9n9ubHuKBQJcRvHzAh0D
   12.36 +AAoJEKyX9n9ubHuKvy8IAKFdb4EAiNZ2Knpu7veEJUtHFU5RqK2n36Yt5uOWyYlm
   12.37 +lMvIvfdnnWyLZo8n9V7ZviWbzIOQyljQC+8AGEWzmfe8588cFiSmAO3Z+vgL3Gtp
   12.38 +9y7DOerGQK1l8VZDTthv9k00QiWlSYRNSiaX51eNuCX6e0/tm2zM/eSZT3lmgFgf
   12.39 +qFm57S3cVcrb0hOp0gVEV7KyOWTd6fVwHOoH0SQJMEhv5QiWe+1bN4sj35mSD/bm
   12.40 +FFhJzGBytC5XxmaFy5y5Ej/M36gTOd29R47yHp9+CcxrPJlBv/ulRT96aitx8+PX
   12.41 +plQiPjA1gqf2wLaijrG3Z7CKTw7P9X13r3TYAMu/slGJAa0EGAEIACAWIQQeDSeG
   12.42 +ROLik6npU9msl/Z/bmx7igUCXEbxwAIbAgCBCRCsl/Z/bmx7inYgBBkWCAAdFiEE
   12.43 +9tfb6mpSSdbhzcPaegO9+IiTmF8FAlxG8cAACgkQegO9+IiTmF/5ywD/ZNFuYrMq
   12.44 +2h4LE7XffiBwbvUbdQ17ybLHfkM8gDQvJKsA+wZjliNP9bpN6hZG6YyDvPOSQq6l
   12.45 +YoPbd1gou4NRyTMAVGQH/jzh+PV96UJCvCKJWaEr9yGWPWkgSa2Ebw1mNzB2maW+
   12.46 +NT83Ywckd61747dghmz5ETuXfFKXGp3nW2f7ozDs2Y8P1Yh6xMge1JN66ZDPd68J
   12.47 +Z2OawG5i0r1/9hXWKrcJQQALkzYTFij1IjZQEMiQ/1sgAAybLHPVOeXv7o1F5EZ6
   12.48 +sCQybQ7RCTFLRkEFjc2OjIeH3+NMMdibEPSEtxBz5Q+kW/dB9c4EGNplVuDSC89V
   12.49 +iCC+NDSi4h97dPu3ZWY6SL2+4K5lOEoVD5XB7rBDHaT4h8BvGe7l9Box0W/y4pXj
   12.50 +8NePc/YZfuEATtasqfObSTShXTQf2HIJgGwuxXXAQp0=
   12.51 +=mMuL
   12.52 +-----END PGP PRIVATE KEY BLOCK-----
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/test/test_keys/priv/subkey_select_5-0xD106E693_priv.asc	Tue Jan 22 12:47:24 2019 +0100
    13.3 @@ -0,0 +1,73 @@
    13.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
    13.5 +
    13.6 +lQOYBFxGBlQBCAC4ZU2FVdlU3ghrsETX/G34YFP7ywiy5cHlayODWygJBOz6w1MI
    13.7 +OiG6tlGzoB7uGMRfByIz00Ry0GoJtm/shyrh2f+qrT5Pqw38SpjJ5PipMndNPaQh
    13.8 +svxWnrpiSpnn/948uqoUHVD/oDjcJQHLVRb1j3fW6oJqV7Z2IjMvhunCtmJ+63fO
    13.9 +M9dsV43oYRcMv13y3rGKsK6OLBuOVNXVbpRKN3Q2oUui2qiVsq4++ABbBQQN9Nft
   13.10 +8poMArL9wLCL2pUB+ZqMhx9SW7bYByyQSdiwZj5CkR6EwNrm73ZIPgByKg5193de
   13.11 +s32DyadnQYbbFQu+YjMgBYekfY8o8LtZEXpfABEBAAEAB/9EkEJlaDkB8fc+l5HZ
   13.12 +n76CQssnjmSjJIRW2mIflxcJV4AIc/VdU0Q0aVNyz4CAtsvZq8zfaViDupQbHW97
   13.13 +ivz6crU6kOVg+TEflNtAAvgk7aNnoJp1f1iNmsKiBqw4lC7d9OiFxyrVig1qagZD
   13.14 +RVXeo+SDELrCcO/i+C+BJhCoeceZtpA69vmfou3bYT4Fj3yc2rAvJSLpwJgdRp7d
   13.15 +9tzbT9oOoca614TY2dxL96xwWhKuOSTj9XaG9UnvTa+x2wdtEBnUqodjEo+Qlwka
   13.16 ++QzaJSZoqEfFDBMWz7bdaO+1/csCPMXXHyuDDib1/7GnAU8kouDgrHdDAqQgLa++
   13.17 +Pbs5BADJlxxygBtqYleSuGorV99+RAoDHl9AIqmj88vcXyS8T3GEjZ6j6jWIUsTA
   13.18 +VBV25hCFM6YaOw9zd7m+Mxcz7KUkr+c6u+fmnn7p//0eLDM590bBFI+qlxTreg5q
   13.19 +GP5RodvCUO586SCDwL6EB2U/jviH9zkRET9kB7OpVGKZCbFUhwQA6ioh8K7Hhe+D
   13.20 +7by8QoJap0VSfkH9FUh5Yv+toaWWIVjjeS+kxSlL9Fmylpft+m/BOUcibvXBaFlR
   13.21 +/0kZHekMcaCm0PMc0AVTsB2Kro5BWOBMKEBIdEGBjiA1LudLWmIBNYVjJ9VDG3CR
   13.22 +xP93g8OcPiDCvgpz4f2uQGDAVFkOeWkD/14CsWLPDTQlnQu1NMVMIn4lu5btbuqW
   13.23 +Bt1y3L5xUQa7AQzFRq0wAGCnmwAEXkY2TUaXK/iLYnu+sugBaWb7zzd7kZ7REWsf
   13.24 +gUwihJljDOwYmUrGBf8FEYiw2xTJCKbbBUrCkkjnUt1HNz3chSkNuMcVbuQD73Pj
   13.25 +ZNm/BEmwFqjnOzW0L1N1YmtleSBDaGVjayA1IDxzdWJrZXlfc2VsZWN0XzVAZGFy
   13.26 +dGhtYW1hLmNvb2w+iQFOBBMBCAA4BQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE
   13.27 +osALEmYMy1dZ5r8YVDFdKdEG5pMFAlxG8xgCGyMACgkQVDFdKdEG5pOa/ggApoZj
   13.28 +V/dIerseQjhRvcmsb8AuCtYIeGJdQsI2vmPvi2v3sblnHzJN6fqHX1kjW+Anm/47
   13.29 +O8Y38iCa/ClGbEzPlNIjt2gbRU2fDMFXs/Y/uahmJ5im8u1o/5/u99t+Pg8xWngy
   13.30 +xSMfbiCUah9+sWV926qXMgAWLQi+WXEth9hJHDr0ojnSYZdv7hDj1ja5Ureq+f8c
   13.31 +vZN1JlTT5Eek3mUKcCFGT0MgBvCw6oyXuMS2PhQETx0MLI/A4DZ61I6V3CugmwwI
   13.32 +UV8R/fzU/n8lF9X+5To+kyiRhznB/jaqXmG1bpF+lpxTegbBNcfEAKHhHcj7yuEj
   13.33 +zSKSvGu+duxJD+tXHp0DmARcRvMfAQgA4nTlPF0e8YPjg8iwsdwjFsBYUPu4Jga2
   13.34 +ZKdgMs54LujAs8Hy95JKS5i7Dj58EDzu2WLXkBXQkm9iYCd9K5dPAdXb56aAqtrb
   13.35 ++FXGqvdIAeeVIN/G7m3r3YcqZuypU7K/TsCU1/l+AWOYi0i7P5b9awVY9gAVTkB9
   13.36 +fglKMR7FlISKt4vriwYu3O36BWNx7b2GpsJmMQVoA0EG9JytnaIorNBjvFu3siJ8
   13.37 +PU0SDIhXJUfFVPiGiw0xmikxUB87tBnAhtqsHh56KG2zKnfW1thG5YHzPiLkba+u
   13.38 +zlXUrbBUxzlY9PXy1dBGR/Uli1xQD9YMtpyyD7P4r5sHLk5lc/aCTQARAQABAAf+
   13.39 +Jw8Z/d4i6O3CZ3fNUDQjwjgVU4yDL93fBj/fRgwaKx8eo7KbbWuoUF8svlF1NRjJ
   13.40 +aqnTe+jjU2qOSX7uJj9gE3U3S36KuU1r/OqQjGr/2sI+lM+8IGJJuSkn3V5K+2J8
   13.41 +gEETuyevfd5XkIiQMXDhz1x6Al4zzo4thvhjuVKxKgMaV6SEqDcOoUEd2lh1T/7j
   13.42 ++656x3G1vcMRp4dRtVSmKsVeBEd3wUxFLNZyvJxBMeUU32+o3MwuBnTiTztLjBil
   13.43 +77qWc8GZMlST1nTX1YcjL5PPLy1rBKmHp+3iqaO9QeE0s4McAAlUY7ep0E4H1TAS
   13.44 +soicTRg7g3n5vu8yVFF++QQA7T/DxY27CSn5itx0CsJdHnSj8xqgFmIWP2u6ukYW
   13.45 +BYWbYt1lPNfFn9Mc4dC4jBYcBEagD1WZiz16msGqdcwlzxLTtbPiWyXvd1KG65hY
   13.46 +QgLOCi6PO+fNrNZBmYFbVoJxIr9+pjtfFOHNMFQY02prm+3ZahX0R5Txp0Jn+uZ/
   13.47 +3eUEAPRaxKAnwKJH3e0NPeJCQ0b/sJaQ+Bp9U4kFJ6dbUkjirOXK7+8c4J+3qu4B
   13.48 +e89WEtGpbC3X+sGzMPZ/1byvddeMJWWA90qOedBQKRPpDtQU0NkIUOUnXmKpsKBC
   13.49 +UbNMLtSq3OOp2hSHPKyAaZUQ/iqKgnT0SMvitLdKlZOBG4xJBAC1pDtxf/HHzG/J
   13.50 +gBjFJnfkDXkRabciQwYT+wqHOjpDSysiJZJ8rQHZBvK4WAkxJq3F1GxSRdTU2xpb
   13.51 +8WQ5dMqNN/UXEhzUNAKlVcv8LZxElXcDdAgsK/aWG6DNONIACHi/k9uUCmFi4wbO
   13.52 +/pWPsCOUqJJbcdGZE/CX5RLypkLmUD2ZiQE2BCgBCAAgFiEEosALEmYMy1dZ5r8Y
   13.53 +VDFdKdEG5pMFAlxG81ACHQEACgkQVDFdKdEG5pN1WQf/cYE9+f7Q5aNEK3CtxCIj
   13.54 +Z3mqeHioItNVW88E5OLbpwfoPCWBVVTTHmOibeHdjjo0P/qZrOMTzkgLfOIiLiyS
   13.55 +6D/EHReyuX2GjXuTFelcccytcOuPOPmJl7yvAVp1wfOwmIX7gvGjXIeqji2Kfv3l
   13.56 +Ff35g8v4QQYGsSVG5fczysSsieMJBTpCvYc8Y2MYdk1Uo0h180a448yIaCRnGdM4
   13.57 +STXdj/g9HSwoyGJFCDQx5zes99jRSlmLJAzNALkE+oY0r0QdMHPTVCKVHBrRztZU
   13.58 +UkYRAoQ7hHbErGj8spqtxwBMi8BBDOYrD8dCltGPOH1Lt1HDH3E+Ju4VJwfZH6gb
   13.59 +rYkBNgQYAQgAIBYhBKLACxJmDMtXWea/GFQxXSnRBuaTBQJcRvMfAhsMAAoJEFQx
   13.60 +XSnRBuaTDi0H/jJJ6o2Jf8kX/l5BT8FKvAA+PpWO8BFQEFPMsIJKb/n2PqAc8c+U
   13.61 +Tizkm+bL4Dgk8m2lMmluzR55KJr3Arau2BTrHciXNEctVIEeobUC/yIRB0sMX7hK
   13.62 +fU0cDSBtOJoZA5JcSIFoUY4A/I1Suw3FX2uZASepsWPcu8Rj9moNU2lyXoxyb6xv
   13.63 +zEr9DLj6Rc7211VvUnPeXhYRVs/PlMWp06pEzDr63f3CwxxWXvfCOEszIw51OHYr
   13.64 +DdGo+W5enOmHY/EuiV3DMME8AqjSYiTiw4LKWGoUBq+9HUM8GW3sdEXUnFx0gq3J
   13.65 +sx/W06SuX7gmKpnIT8eg3KH7WV8WD8XgoA+cXQRcRvNYEgorBgEEAZdVAQUBAQdA
   13.66 +66eYEm3rUShDU+2xPEGUXTOYGGI1p8E+nNhJXlIgYA4DAQgHAAD/Z5sKGEhd6yYC
   13.67 +2eVNfdWkPEQsBUx1fo8stBzoO0ImLKANrokBNgQYAQgAIBYhBKLACxJmDMtXWea/
   13.68 +GFQxXSnRBuaTBQJcRvNYAhsMAAoJEFQxXSnRBuaTEp4IALFhWfIW8MZjXMRDbhlV
   13.69 +tJ5IwbpXCxuGKzsitYYTmEo6IpxexPfNv1zEX+p6TzPE18bM3bTvY0YWq/nJK5VI
   13.70 +sVxat6d2yCi0/435daQuUkhzkznlWk8BNaGSGvXJta9uhHY61lT/QxvVBhxVf68P
   13.71 +TZbtWnE2Vo+SO4iyNU16/A5VEwIi4B+7BZpNyj3obZUHO2dcR3XSHIPkg0VYOu2P
   13.72 +UmWqBjze9tvzCGS57XJI2CbifVX2hReadFqCOeyy+PGkS28BU/CZEGvQ2IJ2QRJd
   13.73 +yz2t+snKNxeGxdrG+9v5vWwamRmW4Yyuko90rrrsOqobh/i7hlmOrZt3rMiUFZD1
   13.74 +WaU=
   13.75 +=Q5MA
   13.76 +-----END PGP PRIVATE KEY BLOCK-----
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/test/test_keys/pub/crappykey_0-26F88D0B_pub.asc	Tue Jan 22 12:47:24 2019 +0100
    14.3 @@ -0,0 +1,13 @@
    14.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    14.5 +
    14.6 +mE0EXEbjwgECAKrQi4nib3fj2QJEFB21fxYXSH0AP48OrK5am/fHIZnorQGQInVE
    14.7 +7/Z3DWLguO6JVGgL22T4HQyHFhq4PCed0r0AEQEAAbQpV2VhayBSU0EgS2V5IDxj
    14.8 +cmFwcHlrZXlfMEBkYXJ0aG1hbWEuY29vbD6IewQTAQIAJQUCXEbjwgUJAAAAAAIb
    14.9 +AwYLAwcICQoGFQIICQoBBBYBAgACGQEACgkQX9b2Uyb4jQuJ/QH/Yub9iPjUXun8
   14.10 +rHcerpT+44MeV5kA/N4HeQy8Ucdnt5v+Y30HelR+NKtHgM3N9WlfnW0p3T9Gh1+h
   14.11 +uOxbuXOnY7hNBFxG48IBAgC6RCV128OxUGyMTu6ezqYB5ukTphHgEqPy7aI73Egx
   14.12 +I7knLwGCSonliFaevk28GBiqssKZa4/1Xod/EuOsSgzFABEBAAGIXwQYAQIACQUC
   14.13 +XEbjwgIbDAAKCRBf1vZTJviNC4O3AgChC8ynK4r5FjXr3pgQMffw3VPIsGgUyZGk
   14.14 +TiOzRvgla2vnm7JBackX0zgWYeKYT91Z1YvUAgaXsOtg5+E/6/tK
   14.15 +=x0Il
   14.16 +-----END PGP PUBLIC KEY BLOCK-----
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/test/test_keys/pub/crappykey_1-0xC508F2B1_pub.asc	Tue Jan 22 12:47:24 2019 +0100
    15.3 @@ -0,0 +1,28 @@
    15.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    15.5 +
    15.6 +mE0EXEblSgECANCN0ls7KiHjDvhNtjEXubECaeG6WUWyiVjylfGd5C3DkCpPw62j
    15.7 +C+5I5iTAwWqhgCYFXx2Taa5bZfxhkyc5sN0AEQEAAbQpV2VhayBSU0EgS2V5IDxj
    15.8 +cmFwcHlrZXlfMUBkYXJ0aG1hbWEuY29vbD6IkgQTAQgAPAUJAAAAAAYLAwcICQoG
    15.9 +FQIICQoBBBYBAgACGQEWIQT3EriK9SXk4yoqJLzRuGE3xQjysQUCXEbmRQIbAQAK
   15.10 +CRDRuGE3xQjysdbTAf9aljQ/Yin9nHuCp36NSJ6Pz0ojFH4U/X9bdg0ObJMy9nB2
   15.11 +kq52dToQVqAAeCrNoM72nUdYpMNK/gjUkAuZWJYCuE0EXEblSgECAKJ6vLeL3tz5
   15.12 +8A5Rp+xe/EfE1o/N3P3/75c2ESDSxQZS4E0zoZaQGOcdbhKwTAyhGqVUNaz29Fh6
   15.13 +P2Sx1XCMAiEAEQEAAYhfBBgBAgAJBQJcRuVKAhsMAAoJENG4YTfFCPKxvJ0B/2Up
   15.14 +jsZ2rfUzz4fL+i6xV5hLLtuGxfTmcSDCYxUO6oBSFixYOCKLJ8Pj4PPdXk2WwAR/
   15.15 +46hX7RiTwKG4VdwlzhC5AQ0EXEbmTQEIAN9yhr8bxHoO0UOcaer6bHnwdJgNmnqp
   15.16 +TprFy6/dQk0e5WQsSndqtjhbcM1bVPvtBN9TRNu2V5KskHkIGi9hT6tinwb8RpiM
   15.17 +mP2IqBB4TG775dDZFoPCIUgT2N9ttHMmEV5z1T3ihFrRZMgeK2tjFgY7prLm8SPJ
   15.18 +Yy8OHLXtZ1pgjGq/lfWr9FHi+aRPeS+kacSe5kbJdiBrTjQ2V/yXdEUJmX65YjFL
   15.19 +fh7/mWueMG1weyyM50EjTV/iD+5qLunYgU0KIeMwPEjqlGrj0JSNjhQL4W3SWK0B
   15.20 +2tu2zhT5BD+u0XDug+ZVR1n09HCcE95/BqIqpCf5TJxHswUqLH25dGkAEQEAAYkB
   15.21 +rAQYAQgAIBYhBPcSuIr1JeTjKiokvNG4YTfFCPKxBQJcRuZNAhsCAUAJENG4YTfF
   15.22 +CPKxwHQgBBkBCAAdFiEERGu+bZeUOk6WERPaRphZFzO/xKQFAlxG5k0ACgkQRphZ
   15.23 +FzO/xKSCpwgAvKNwZHlTAPkILWmappLE3r99hPfWVAE7p3i69T8rSf/7VhGQiOpF
   15.24 +yrw6u/BGVSWEQ+av0NdQIsxHCHu0fmV4PIhL8sRE2sP0/0yr6vdriJA5Bha43dv2
   15.25 +Iy/EIK4oZ2xwNhPL0l9Ww4d1tr1hX50TBoo0nV3qH6AYHYAebwGCghMhEkeVxH8P
   15.26 +zAKnh+qM8f8XpwaOAVmFRolg7GCNuDzNl07cyGkVcAqy/lsRNAEow+y3SA6Uhmbt
   15.27 +DoH2qTYOqYHh3Ntav9n5rTjwumiLLpbDNnIEnt2rIED48d3krokt/8kSNW1FXayb
   15.28 +ca51vA0r7m43UycutEJ9A4fEKzoHeGZkdKdqAgClDYMTn8TgJd01MSlkwhsqqeni
   15.29 +G/dEU0ZCptOaYs2GsGBobyz69d5LKTqcrEbuafP5MXilLOSQkcfPAxli7j0B
   15.30 +=3gub
   15.31 +-----END PGP PUBLIC KEY BLOCK-----
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/test/test_keys/pub/crappykey_2-0xC027262F_pub.asc	Tue Jan 22 12:47:24 2019 +0100
    16.3 @@ -0,0 +1,13 @@
    16.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    16.5 +
    16.6 +mE0EXEblegECAKrUcuK2FN/qr6tg0OK4IpDky/kJExGaLGGds2LNqSTuTPCHCCQ/
    16.7 +2gbxFYS60M8oaXpax+EWI4sydMzQR4qXo10AEQEAAbQpV2VhayBSU0EgS2V5IDxj
    16.8 +cmFwcHlrZXlfMkBkYXJ0aG1hbWEuY29vbD6IewQTAQIAJQUCXEblegUJAAAAAAIb
    16.9 +AwYLAwcICQoGFQIICQoBBBYBAgACGQEACgkQMld2+8AnJi8WIgH/TQE605yPZac0
   16.10 +fEvzuCTl+k/vOCP1P1FkfsbUm+rzvMnrslso3UFLJIclO9rmQQINl307+fRLXbuZ
   16.11 +1Oy34wgtA7g4BFxG5xASCisGAQQBl1UBBQEBB0Cug/QGjM5TjeKyg6niEHNv+DQZ
   16.12 +LCdFd49RHzSk896aVAMBCAeIdgQYAQgAIBYhBBhURJIFUgeyk2uyFTJXdvvAJyYv
   16.13 +BQJcRucQAhsMAAoJEDJXdvvAJyYvRnMCAJCqixSW4YpifSYsEssPpHKGHVgCR6Fj
   16.14 +LN1yE4Bl0OAra+ocbgEgWY9W91MNi1sV5neaqpyOzuvVRdkAm1i4874=
   16.15 +=ncwA
   16.16 +-----END PGP PUBLIC KEY BLOCK-----
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/test/test_keys/pub/subkey_select_0-0x4929DC45_pub.asc	Tue Jan 22 12:47:24 2019 +0100
    17.3 @@ -0,0 +1,18 @@
    17.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    17.5 +
    17.6 +mQENBFxGBkEBCACxp7qY+FhxQmHicXiVNz65bZxnu8E72iGseEXctVJGv/F3J8DO
    17.7 +RU2mJ+VbKkx3levnCTQPx3Vwg77PSZyu8TJN/Nex9xSypTDo6fMtdOSWLgcKIyIZ
    17.8 ++fcsW61cSs7xgqdx/JaNzmfmXEe7OwoXi0I99BVX//uz1ZWK7nj/YiJs+xuTo5S0
    17.9 +lgWNQ+h0CrbSu4jT8ANMhCHCtqz+biFYATV70Rv3RNz0yVijYQ3h4tuwdONfo9gH
   17.10 +BAoESdhEdk12LJGrgvnY5FKOrx9Q0oHxdmM8Qg66pwd32pram0jeg0cQ3SK8VmBP
   17.11 +vfo24gtKsn4f0oy0jYuxWEgOK1BjNKgepF6FABEBAAG0L1N1YmtleSBDaGVjayAw
   17.12 +IDxzdWJrZXlfc2VsZWN0XzBAZGFydGhtYW1hLmNvb2w+iQFOBBMBCAA4BQsJCAcC
   17.13 +BhUKCQgLAgQWAgMBAh4BAheAFiEE8NA8hCwHcMLCqf6vKh7ZgUkp3EUFAlxGCMQC
   17.14 +GyEACgkQKh7ZgUkp3EVWRAf+MCTJZ/gIitYdJsGoYIEm4bs1JO+/lKZFSLoCtxtc
   17.15 +IIFBDqsVhitDC0UtNyuD7TRXanNLXirlOTN/uYKzP/IFiU+q0KoKihNWn7gK7tPd
   17.16 +AQ5uwQZb/7omUZScnfPieurPuKASH4q5XGcqecET05FE/JORxEh57aD3/ILW1Aak
   17.17 +EeKgfC240Z8pEO5bTMda3BV6Va0HGaHsq6GylvzKj2FmcxpbBbrUjxvat4oshTNR
   17.18 +eYHL2C3i4S4hALJCLO2/8pQzNqofitRkn32oR7+PyYgXY2nnjPO7+Mr6J9Jgr237
   17.19 +mzBeq/dAt4qlY5VI8tD1LfVh62tqy96bbenIL8D8xOHWDQ==
   17.20 +=P4RS
   17.21 +-----END PGP PUBLIC KEY BLOCK-----
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/test/test_keys/pub/subkey_select_1-0xF2BFF59E_pub.asc	Tue Jan 22 12:47:24 2019 +0100
    18.3 @@ -0,0 +1,31 @@
    18.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    18.5 +
    18.6 +mQENBFxGBkcBCACzk5CHhKqW0iOYWLo82kQEg+SC61mnxZcwOpad008YbQB/LXRl
    18.7 +4vlxssfZy8upfazux7lMNvz+OlwmGWt+PiVUqZmfWtOkMtKajtXfOj2hXyKOvcib
    18.8 +P42N/D9EGXgo723XAnx0TRRjf2AmP/w/yHkORGBNnLLek6i5J73pnK2x6FtzKITw
    18.9 +8akrX3nwGVhC3DYd1Hf/pdTpl3mp8Lo6bI10rpSMmvcp4/Ie5uJ16LxO04loLAi5
   18.10 +Ic6Q4+YX5WOOPHvdY09w059MXZocuomEmdY8PIvoef954k4+KZWmYpf0SKYOscQc
   18.11 +uznCWTMAQAdRNDjvX49IswRZVBvJYVPHUDGpABEBAAG0L1N1YmtleSBDaGVjayAx
   18.12 +IDxzdWJrZXlfc2VsZWN0XzFAZGFydGhtYW1hLmNvb2w+iQFNBBMBCAA4BQsJCAcC
   18.13 +BhUKCQgLAgQWAgMBAh4BAheAFiEEkYr26Ybzm2MFQeEN9ff6NfK/9Z4FAlxGCiEC
   18.14 +Gy0ACgkQ9ff6NfK/9Z7IZgf4qLkKYeeqOmVk9HARqcyhYYhBrGOF4VaLVW5lJES5
   18.15 +IzK+kT9wc6V0qGrqTqHrlLRCATiVAths/Gyq+eUbHFT68WQ9+2BESyt9/dV36QQy
   18.16 +Q0tdgYK0x6G0anzUYjpwac1zW4M/v5mBDFqhTbfNO8FvRsU6Yctmgw07q3OFpZ6P
   18.17 +BAOXlfalICzZ2RNzRCEOvKhZMuzfUVH/GfXceXBDn5Db1jFkjh4RJCP0XUaAPV+p
   18.18 +w3bO2Sn9Ype3h0dqKE0G5K1QVKbMrH8LACR6WSXbGdjUyB+uXcqnUKBmaIS5p5oK
   18.19 +OMU+xaATM24t651FhOik7uS4gBdvREr6yp1ae05g04eTuI0EXEYKLgEEANrbMRIH
   18.20 +JsXVxPdCqgSgMwvKrS0k6OsRc8UeaQHxMFaNClBkPb2Nc+T5DcQ9UKfbEDegcOF6
   18.21 +hyQ6UglfbtriXat0NOrnBburwLdW7YoBcWayhUDu0QmhIPCb9Xcob8lkQmKzb6bP
   18.22 +85grYoHQWnLfNBfV9qcpHBV+jV2xrOEVCNtZABEBAAGJAesEGAEIACAWIQSRivbp
   18.23 +hvObYwVB4Q319/o18r/1ngUCXEYKLgIbAgC/CRD19/o18r/1nrQgBBkBCAAdFiEE
   18.24 +2aa+R0T4ySVerxrylG24itg63LgFAlxGCi4ACgkQlG24itg63LjdNAQA0AdVfpWI
   18.25 +XG1+VzWVHJ72j8lyQgpoG67UTPks1LZCXiAYLbAn8qOmd30qt75e7PWAfUvISlAU
   18.26 +883k4t+otn8JX3BjBYLwezdKhyWN5kZc6CVxth6TOeVhCyKfh5icfFipOJGEFsxc
   18.27 +Wq3JZtLu4a0mtNb8B3C7vu+dS5LJanv/Nw/CAAgAn+PfQS8Rrwt1ud+4BA/RiDqL
   18.28 +rAOaweAQnRb2l3X6V7vBGBSPnFuEEoLRd5Uqf+4OYICpEclLcZgHDQXcOFf9cKc8
   18.29 +D75OvtESoKNiEWPq+n6YjC+W+FC7s09/BF9gsM8DXq2LgLyTP7uwZM85j/VtGcZB
   18.30 +cNsQUxLyxTL18lxBjTJZXp2P2j/81+NZX1+6N2Omatf1SG2E8CMW+hcllszW+caX
   18.31 +uXq/LpkOw8btqS/tMZrIYhYyD8psWiyxJPZAjqq5fKvTh38bMCb2btGw4pDTlfaC
   18.32 +I4yRZA8UBoqxP/s0BR8XGtJ56sJZIIW+ZpE3Z768J1rgld9yFeilQWkDaI0ZWQ==
   18.33 +=tl7g
   18.34 +-----END PGP PUBLIC KEY BLOCK-----
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/test/test_keys/pub/subkey_select_2-0xBAD7800C_pub.asc	Tue Jan 22 12:47:24 2019 +0100
    19.3 @@ -0,0 +1,28 @@
    19.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    19.5 +
    19.6 +mQENBFxGBkwBCACQa3Qt8LaXvGZ1WL7qJyjeKNd2xW5y6DO8+6Sm6AxEdRSkEg0w
    19.7 +DuceemwhCl8p/VlLsUsqnBXqxR6j4cKGQkSsmvZhZt6EFcPD9/OU1CovcbzylJd1
    19.8 +C8bxFypd2qVpOh0i0lOfhbrtbzCocoDVWZ4rfiMPUWy6E0HGfEcxU8GPMOSIsdbC
    19.9 +vnbZbZrgW8VK8f+vjn4FFrBtMF3Xs1LGwAuzSdTYW68Be7k3MkKKkJl0QrTEzIxo
   19.10 +IEO1EZStmo8VM8nGh0rLe+mQI9TaN/Jn3DCE4m4gmS37hyl4+MPkM7jEc1eJ8DAa
   19.11 +EYpnDoTAs58OBpuHBzsXXvFL/hA5U4rMl9mbABEBAAG0L1N1YmtleSBDaGVjayAy
   19.12 +IDxzdWJrZXlfc2VsZWN0XzJAZGFydGhtYW1hLmNvb2w+iQFOBBMBCAA4BQsJCAcC
   19.13 +BhUKCQgLAgQWAgMBAh4BAheAFiEEiJQgLj15HJVWAFi9d2drrLrXgAwFAlxGDH0C
   19.14 +Gy0ACgkQd2drrLrXgAwt4Qf/VbzQFNxLHFqi6x2mffvPR3gUtygMyv3EjlH8VOyD
   19.15 +uDmGu3nCm7Q4LdtjtVhDRYlmwaQHlVp2JxRWDVPUpru7fKxMxk7H39oGoh85VItJ
   19.16 +AyqZZhCbal2FM/W3j/+pnig0Q2kNoCVlD3WZg13Ejw/cw7z4zasaT+O2AJ9KzRNw
   19.17 +4Hk5FEnlhjuSCLdox/oMCe5RM5NmUazC5m4ejpqE/hryLzp10PjCMJCXz2fMrAWM
   19.18 +ZbVWB5vmioP6oR0UjiJdfnEPjjJ7L2w7A08j6kATh4+hPG2FXbox6J3tBJ1flwWc
   19.19 +ZGiTUYEzxPpq3ArOqUEypddkNdrshMQnwSjBJzdFlR4bebgzBFxGDDEWCSsGAQQB
   19.20 +2kcPAQEHQIxutjFIiJAtLbBcHCnXU2jM8JJ8Gz8aGeq2p9KnzVCriQGtBBgBCAAg
   19.21 +FiEEiJQgLj15HJVWAFi9d2drrLrXgAwFAlxGDDECGwIAgQkQd2drrLrXgAx2IAQZ
   19.22 +FggAHRYhBFYfy8bkKp+qd1l15MNU5VghHHKeBQJcRgwxAAoJEMNU5VghHHKeYUUA
   19.23 +/i9CMTiPeDX3rkNU+EwymZ8nWWE6apNkGMHuK8NYgM85AP99KrlJgtElgWcdPbtY
   19.24 +QW63QOXAO7z8gfGx7H8XTShDAtw8B/0djEwYkaKFoOg/MRRlcJMGGMKhUmlqHsk9
   19.25 +7k0rzQO1Gf4ea5DKgW7FQcspVBvlCRabx2JlCTT8t/YNp31Bm20PJwrkQp9tVYTp
   19.26 +OVLxsJsmQa6G0/ypwl49PkaWjXFCsnrgJvwyiHdeSKFaCBl2o7sQoQXGukPFsNcu
   19.27 +OirZ6Z0czdV+O0zCoub5MVtTWA33CiZZK5xOobnb4/Pih1rNEMLu+wfr6s+XjHKf
   19.28 ++CMEEmbwcXG/DV6GhM0WrFQ4iCJx+cNWwnNyffRwLQpg9EUpqXl0Ey6F0J6iApuP
   19.29 +r8c6yvkiI+dNeXeDuwcUgeYc+xgOz8IobCqROh4QWTNOazChvCSx
   19.30 +=xnz/
   19.31 +-----END PGP PUBLIC KEY BLOCK-----
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/test/test_keys/pub/subkey_select_3-0x34F44C02_pub.asc	Tue Jan 22 12:47:24 2019 +0100
    20.3 @@ -0,0 +1,46 @@
    20.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    20.5 +
    20.6 +mQENBFxGBk8BCACikTVRrTEv3Ak3GBm6qNvODY2/P6gksIGgFCqWf6igu2xcBFq/
    20.7 +lNSVXTWUBSHKJUTXujizohDj+uu8ptRxiB9pIjCED10rP0pFhknYRXVInfx6uxGE
    20.8 +ToZ30VymvyVFw1RiHd4Fxg7fg3ri4+8rli+DxcgpiXySusibasnWjrUJMBDXMFl9
    20.9 +LpKCXaS7HNuNQqNYImbM2x3X3q66XOgPb7VIzj8nqdCugASTrCOMZvVytGghPATl
   20.10 +03JzFDPmzbVyxQaGPCqOe9eLVsy+YEvQaZ86qPUiJuEJ/7+ScwvB++kjWi/J6qTR
   20.11 +4SeghWPJr63DYwy6Xo6cx8Bkvhriy+JnYIrvABEBAAG0L1N1YmtleSBDaGVjayAz
   20.12 +IDxzdWJrZXlfc2VsZWN0XzNAZGFydGhtYW1hLmNvb2w+iQFOBBMBCAA4BQsJCAcC
   20.13 +BhUKCQgLAgQWAgMBAh4BAheAFiEEXqX39xuzm095JNHo0RxnYTT0TAIFAlxGDVwC
   20.14 +GyEACgkQ0RxnYTT0TAJHfgf/S01scxkskxHWeXwUfVeb/iYbX86TtIB+AJfsiw5H
   20.15 +avSQVdH2gU9m6ZSm/yxM9+WRU4uARaiXRd2HXCMwqx3IIkPjNlNSyB2xyTLdsddC
   20.16 +r0+Tfw09ELbgqn9xZk2d4+EB52QO2D7sYfjV6Rd/HBtEfvihr0DZtXQA76TTl3dM
   20.17 +UVPP/lq/FmaGFaFEROtnAKkOnLhvcNAQVFuVmZ0cZRR21r4qeoblOvSHAWqMSSQ6
   20.18 +H0f/xkPJj7qOqGoBRSjyPdLBogQeYaIQTDChtya2WCEqKTF1qPsGyUCLYJW4ieFL
   20.19 +XirfQqFkuGgh3sflWSwF3CYH3/m6w3j7aAuVXTVQjb3qk7gzBFxGDV4WCSsGAQQB
   20.20 +2kcPAQEHQK1WjaIbAxPLWtVDwrGsBTXx5xmsPko0/7acLzBEPGu5iQGtBBgBCAAg
   20.21 +FiEEXqX39xuzm095JNHo0RxnYTT0TAIFAlxGDV4CGwIAgQkQ0RxnYTT0TAJ2IAQZ
   20.22 +FggAHRYhBKgClKGfPYyj93Zig1osmZQB2tUkBQJcRg1eAAoJEFosmZQB2tUkwqQB
   20.23 +AIYs3W3Sr/Y+k8falIaPFXsXH4lVNWc7Mkmo6BuWKBm+AQD3KD5ch7fZ++mnFrke
   20.24 +P2JXKsBvEdK39IxrloC6hKcCCbVLCACJ1bmu2kKCZ0oPe4SHSCndouekmrHlZ5OT
   20.25 +DntsiDMei7O0X1q8I/8B2DyPCNRS3tKwehE03oPzDxABxV6V/cVuoe0IWtScy15Y
   20.26 +AF1steg4eDVzyX6ach8O3XhCg5CzMFiE4B0YK3t/KHZDaxkLBIjGwiVUrt3+mNnZ
   20.27 +RUEZ/ACvFUccvBwGEkD+DQzoF57QCTqCLF1FxXnr5w1v9L6xsxcLVE9HbUPSlOKQ
   20.28 +S/J1GGcWjNwuY5IBSPbBzp3RQC+ZWY/Ubx+GDKNJnUcjS2eqEuC5tjAsqKeemOR0
   20.29 +XTIWqrQSvSE0s8hszjVQQ2PkFDK5yax8xX0aR7A+dZjj4w/n4q0yuDgEXEYNkxIK
   20.30 +KwYBBAGXVQEFAQEHQOvpNNqX3I+2BFMDqUmk0JxrWUhlSuVjutd3pAZTXHEOAwEI
   20.31 +B4kBNgQYAQgAIBYhBF6l9/cbs5tPeSTR6NEcZ2E09EwCBQJcRg2TAhsMAAoJENEc
   20.32 +Z2E09EwCwcEH/0SbbY68yVsQJm07TU2FK7N83vlyzdLv1zeB65dFq/4P2tPmlfHO
   20.33 ++o7t4xy0SvTaonXnYiorsyS/HdSs4GqTQYwaeu0YT67rESKZaOmAIIEmIOWbjy+s
   20.34 +6i3vWWdHr4XZbVHgkTR3oMCw1VS6fMcNE940D3UrlRqiPPIrtv4KNX9Yvwso88Mw
   20.35 +zVZ2MwmKM2bKxdfgkcgbALGpPOResVoCK+AOyamdVFCAAHGZT1FNu7MxQMN0C/3Q
   20.36 +acX3o5VyvgGDrDN/9Xl3q4H1sciaOidAgCFwPvbQmzrl2yGyUXhHX3UMA+r5HtYn
   20.37 +Fk8K17IeGbd2WoNbF6tT3uvaWFFUr4JR2JS4jQRcRg2qAQQA1LNWmbgSHrqI3T8v
   20.38 +YGg/18Cf5B9klY4UWuAj3VsdBJVxp0ZJwzmk/N+0b2XTuWd8iPlHuGn4Plqk/zf+
   20.39 +C9YuWOtXUCuRGlQeBuTs5LVgV2QeFf/Q7+mZHOmxOPO2gTlPI7S3TcQRaB0nLYSU
   20.40 +K/11EHHMtauy3LZtmdqzazKdJm8AEQEAAYkBNgQYAQgAIBYhBF6l9/cbs5tPeSTR
   20.41 +6NEcZ2E09EwCBQJcRg2qAhsMAAoJENEcZ2E09EwChmIH/itKIJcHk8kwBCELYHcD
   20.42 +mlhAvnaQ/3n6u7hWMBQg2alZv+m7JydAidO7dp8qwUdFX+kEwFFuTXIje7s0a37H
   20.43 +dESvXgov+Tl7ar4y2FA+vQePXeMBOhmxz372FnOUOXZ+6N7yrHT2EvBnSqqaQCbs
   20.44 +vNKWIwt6i3+qvX12KgpKx0lYl05Kmwe0RS3S07TBtwFeV8Tk1E3Xtsf0qA5vUvXX
   20.45 +kG+SVaWCU/UCmUi9YhzreKLvowKiFbpK2H9CIs6ZUGpLq2uRDHJhrQY4aeRIGQLx
   20.46 +OfzYww/wAyUaCl0XKRv7zFg28cJwImsk8jcAEJqYZ7YMEf9ohvNNwxdzrrr7zI/6
   20.47 +u3E=
   20.48 +=Pkm5
   20.49 +-----END PGP PUBLIC KEY BLOCK-----
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/test/test_keys/pub/subkey_select_4-0x6E6C7B8A_pub.asc	Tue Jan 22 12:47:24 2019 +0100
    21.3 @@ -0,0 +1,35 @@
    21.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    21.5 +
    21.6 +mQENBFxGBlIBCADQ0BAuaVLY6qVfirbMzGVE9o7T9vJcRuLU5UaQe2xVS/qswu6T
    21.7 +q078R4ItAOItaSUhP081MMZNHCZmMHtJvnkgGCQfGdUnUntbx/McetnNHanXOFtX
    21.8 +51H6rBT2t+0kFQ1FcofG3jXlOgEi3ISqv2MBfkhFG+feVmc1uCcxp4A2pFp+cLhv
    21.9 +nWIJ7ksvKyGM+tbQOIpY+ylYcFWDqCzSZ2nv97U0GMVY4cuKEZpGB8ArPec8X7EM
   21.10 +WSbM6rCHsWSdIO4XrwYazQZeBnIUAN44h76SkSdNuSqJgasXNmJFaMoZtZ8JrcCQ
   21.11 +Zrre+z6CBDr+Zsn5PoqK16TcYZKxRv1Q5MczABEBAAG0L1N1YmtleSBDaGVjayA0
   21.12 +IDxzdWJrZXlfc2VsZWN0XzRAZGFydGhtYW1hLmNvb2w+iQFOBBMBCAA4BQsJCAcC
   21.13 +BhUKCQgLAgQWAgMBAh4BAheAFiEEHg0nhkTi4pOp6VPZrJf2f25se4oFAlxG8bsC
   21.14 +Gy0ACgkQrJf2f25se4rBFgf9GFyVdylvzmkeHcf2AyL/+9xXtwhIowp45RWBwyYu
   21.15 +m4kpbeHa7pBBBCYthDRFpIE+G22MCf1cPEjoGqvRbBO2AusozVeqQ2kQ4+Cb2aC8
   21.16 +I2Em5+7aFgUSN0VLEKi/9n8eMu0zWBVZo+QCGOXAZ03tlvatBd+awNniXQii3G49
   21.17 +roOdGzdv5v4hA/hyCl3IqIaJIpRKz1gEh8EpkapJveTYCVH7azZZubunX1O7cOuD
   21.18 +xs5IOZWQBijiXA6jXsqMI06VJjX/UVeUViQbywmlTjnRwImAyZsWPDByCPR362Ar
   21.19 ++Y4k1iwgw9TDnqmnWiCBT6NwaWFlVjmCWavVGuU/tUWjm7gzBFxG8cAWCSsGAQQB
   21.20 +2kcPAQEHQPT1C2N0d7S7xVo9hp05oHdabF9O7OFbOFzljC3GdIwdiQE2BCgBCAAg
   21.21 +FiEEHg0nhkTi4pOp6VPZrJf2f25se4oFAlxG8fMCHQMACgkQrJf2f25se4q/LwgA
   21.22 +oV1vgQCI1nYqem7u94QlS0cVTlGoraffpi3m45bJiWaUy8i992edbItmjyf1Xtm+
   21.23 +JZvMg5DKWNAL7wAYRbOZ97znzxwWJKYA7dn6+Avca2n3LsM56sZArWXxVkNO2G/2
   21.24 +TTRCJaVJhE1KJpfnV424Jfp7T+2bbMz95JlPeWaAWB+oWbntLdxVytvSE6nSBURX
   21.25 +srI5ZN3p9XAc6gfRJAkwSG/lCJZ77Vs3iyPfmZIP9uYUWEnMYHK0LlfGZoXLnLkS
   21.26 +P8zfqBM53b1HjvIen34JzGs8mUG/+6VFP3pqK3Hz49emVCI+MDWCp/bAtqKOsbdn
   21.27 +sIpPDs/1fXevdNgAy7+yUYkBrQQYAQgAIBYhBB4NJ4ZE4uKTqelT2ayX9n9ubHuK
   21.28 +BQJcRvHAAhsCAIEJEKyX9n9ubHuKdiAEGRYIAB0WIQT219vqalJJ1uHNw9p6A734
   21.29 +iJOYXwUCXEbxwAAKCRB6A734iJOYX/nLAP9k0W5isyraHgsTtd9+IHBu9Rt1DXvJ
   21.30 +ssd+QzyANC8kqwD7BmOWI0/1uk3qFkbpjIO885JCrqVig9t3WCi7g1HJMwBUZAf+
   21.31 +POH49X3pQkK8IolZoSv3IZY9aSBJrYRvDWY3MHaZpb41PzdjByR3rXvjt2CGbPkR
   21.32 +O5d8UpcanedbZ/ujMOzZjw/ViHrEyB7Uk3rpkM93rwlnY5rAbmLSvX/2FdYqtwlB
   21.33 +AAuTNhMWKPUiNlAQyJD/WyAADJssc9U55e/ujUXkRnqwJDJtDtEJMUtGQQWNzY6M
   21.34 +h4ff40wx2JsQ9IS3EHPlD6Rb90H1zgQY2mVW4NILz1WIIL40NKLiH3t0+7dlZjpI
   21.35 +vb7grmU4ShUPlcHusEMdpPiHwG8Z7uX0GjHRb/LilePw149z9hl+4QBO1qyp85tJ
   21.36 +NKFdNB/YcgmAbC7FdcBCnQ==
   21.37 +=hOhH
   21.38 +-----END PGP PUBLIC KEY BLOCK-----
    22.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2 +++ b/test/test_keys/pub/subkey_select_5-0xD106E693_pub.asc	Tue Jan 22 12:47:24 2019 +0100
    22.3 @@ -0,0 +1,45 @@
    22.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    22.5 +
    22.6 +mQENBFxGBlQBCAC4ZU2FVdlU3ghrsETX/G34YFP7ywiy5cHlayODWygJBOz6w1MI
    22.7 +OiG6tlGzoB7uGMRfByIz00Ry0GoJtm/shyrh2f+qrT5Pqw38SpjJ5PipMndNPaQh
    22.8 +svxWnrpiSpnn/948uqoUHVD/oDjcJQHLVRb1j3fW6oJqV7Z2IjMvhunCtmJ+63fO
    22.9 +M9dsV43oYRcMv13y3rGKsK6OLBuOVNXVbpRKN3Q2oUui2qiVsq4++ABbBQQN9Nft
   22.10 +8poMArL9wLCL2pUB+ZqMhx9SW7bYByyQSdiwZj5CkR6EwNrm73ZIPgByKg5193de
   22.11 +s32DyadnQYbbFQu+YjMgBYekfY8o8LtZEXpfABEBAAG0L1N1YmtleSBDaGVjayA1
   22.12 +IDxzdWJrZXlfc2VsZWN0XzVAZGFydGhtYW1hLmNvb2w+iQFOBBMBCAA4BQsJCAcC
   22.13 +BhUKCQgLAgQWAgMBAh4BAheAFiEEosALEmYMy1dZ5r8YVDFdKdEG5pMFAlxG8xgC
   22.14 +GyMACgkQVDFdKdEG5pOa/ggApoZjV/dIerseQjhRvcmsb8AuCtYIeGJdQsI2vmPv
   22.15 +i2v3sblnHzJN6fqHX1kjW+Anm/47O8Y38iCa/ClGbEzPlNIjt2gbRU2fDMFXs/Y/
   22.16 +uahmJ5im8u1o/5/u99t+Pg8xWngyxSMfbiCUah9+sWV926qXMgAWLQi+WXEth9hJ
   22.17 +HDr0ojnSYZdv7hDj1ja5Ureq+f8cvZN1JlTT5Eek3mUKcCFGT0MgBvCw6oyXuMS2
   22.18 +PhQETx0MLI/A4DZ61I6V3CugmwwIUV8R/fzU/n8lF9X+5To+kyiRhznB/jaqXmG1
   22.19 +bpF+lpxTegbBNcfEAKHhHcj7yuEjzSKSvGu+duxJD+tXHrkBDQRcRvMfAQgA4nTl
   22.20 +PF0e8YPjg8iwsdwjFsBYUPu4Jga2ZKdgMs54LujAs8Hy95JKS5i7Dj58EDzu2WLX
   22.21 +kBXQkm9iYCd9K5dPAdXb56aAqtrb+FXGqvdIAeeVIN/G7m3r3YcqZuypU7K/TsCU
   22.22 +1/l+AWOYi0i7P5b9awVY9gAVTkB9fglKMR7FlISKt4vriwYu3O36BWNx7b2GpsJm
   22.23 +MQVoA0EG9JytnaIorNBjvFu3siJ8PU0SDIhXJUfFVPiGiw0xmikxUB87tBnAhtqs
   22.24 +Hh56KG2zKnfW1thG5YHzPiLkba+uzlXUrbBUxzlY9PXy1dBGR/Uli1xQD9YMtpyy
   22.25 +D7P4r5sHLk5lc/aCTQARAQABiQE2BCgBCAAgFiEEosALEmYMy1dZ5r8YVDFdKdEG
   22.26 +5pMFAlxG81ACHQEACgkQVDFdKdEG5pN1WQf/cYE9+f7Q5aNEK3CtxCIjZ3mqeHio
   22.27 +ItNVW88E5OLbpwfoPCWBVVTTHmOibeHdjjo0P/qZrOMTzkgLfOIiLiyS6D/EHRey
   22.28 +uX2GjXuTFelcccytcOuPOPmJl7yvAVp1wfOwmIX7gvGjXIeqji2Kfv3lFf35g8v4
   22.29 +QQYGsSVG5fczysSsieMJBTpCvYc8Y2MYdk1Uo0h180a448yIaCRnGdM4STXdj/g9
   22.30 +HSwoyGJFCDQx5zes99jRSlmLJAzNALkE+oY0r0QdMHPTVCKVHBrRztZUUkYRAoQ7
   22.31 +hHbErGj8spqtxwBMi8BBDOYrD8dCltGPOH1Lt1HDH3E+Ju4VJwfZH6gbrYkBNgQY
   22.32 +AQgAIBYhBKLACxJmDMtXWea/GFQxXSnRBuaTBQJcRvMfAhsMAAoJEFQxXSnRBuaT
   22.33 +Di0H/jJJ6o2Jf8kX/l5BT8FKvAA+PpWO8BFQEFPMsIJKb/n2PqAc8c+UTizkm+bL
   22.34 +4Dgk8m2lMmluzR55KJr3Arau2BTrHciXNEctVIEeobUC/yIRB0sMX7hKfU0cDSBt
   22.35 +OJoZA5JcSIFoUY4A/I1Suw3FX2uZASepsWPcu8Rj9moNU2lyXoxyb6xvzEr9DLj6
   22.36 +Rc7211VvUnPeXhYRVs/PlMWp06pEzDr63f3CwxxWXvfCOEszIw51OHYrDdGo+W5e
   22.37 +nOmHY/EuiV3DMME8AqjSYiTiw4LKWGoUBq+9HUM8GW3sdEXUnFx0gq3Jsx/W06Su
   22.38 +X7gmKpnIT8eg3KH7WV8WD8XgoA+4OARcRvNYEgorBgEEAZdVAQUBAQdA66eYEm3r
   22.39 +UShDU+2xPEGUXTOYGGI1p8E+nNhJXlIgYA4DAQgHiQE2BBgBCAAgFiEEosALEmYM
   22.40 +y1dZ5r8YVDFdKdEG5pMFAlxG81gCGwwACgkQVDFdKdEG5pMSnggAsWFZ8hbwxmNc
   22.41 +xENuGVW0nkjBulcLG4YrOyK1hhOYSjoinF7E982/XMRf6npPM8TXxszdtO9jRhar
   22.42 ++ckrlUixXFq3p3bIKLT/jfl1pC5SSHOTOeVaTwE1oZIa9cm1r26EdjrWVP9DG9UG
   22.43 +HFV/rw9Nlu1acTZWj5I7iLI1TXr8DlUTAiLgH7sFmk3KPehtlQc7Z1xHddIcg+SD
   22.44 +RVg67Y9SZaoGPN722/MIZLntckjYJuJ9VfaFF5p0WoI57LL48aRLbwFT8JkQa9DY
   22.45 +gnZBEl3LPa36yco3F4bF2sb72/m9bBqZGZbhjK6Sj3Suuuw6qhuH+LuGWY6tm3es
   22.46 +yJQVkPVZpQ==
   22.47 +=00b5
   22.48 +-----END PGP PUBLIC KEY BLOCK-----