ENGINE-420: test code, not finished ENGINE-420
authorKrista Bennett <krista@pep-project.org>
Fri, 13 Apr 2018 00:45:38 +0200
branchENGINE-420
changeset 25941b45507f4696
parent 2593 0876c1a73ae1
child 2595 ca6702d7dcd7
ENGINE-420: test code, not finished
.hgignore
src/message_api.c
src/message_api.h
test/convenience_scripts/keygen_for_test.py
test/encrypt_attach_private_key_test.cc
test/test_keys/priv/priv-key-import-test-main_0-0x3276D2E5_priv.asc
test/test_keys/priv/priv-key-import-test-main_1-0x80C8CD87_priv.asc
test/test_keys/priv/priv-key-import-test-main_2-0x0B74809C_priv.asc
test/test_keys/priv/priv-key-import-test-other_0-0xD11252C9_priv.asc
test/test_keys/priv/priv-key-import-test-other_1-0xC785F20A_priv.asc
test/test_keys/priv/priv-key-import-test-other_2-0xF26F5504_priv.asc
test/test_keys/pub/priv-key-import-test-main_0-0x3276D2E5_pub.asc
test/test_keys/pub/priv-key-import-test-main_1-0x80C8CD87_pub.asc
test/test_keys/pub/priv-key-import-test-main_2-0x0B74809C_pub.asc
test/test_keys/pub/priv-key-import-test-other_0-0xD11252C9_pub.asc
test/test_keys/pub/priv-key-import-test-other_1-0xC785F20A_pub.asc
test/test_keys/pub/priv-key-import-test-other_2-0xF26F5504_pub.asc
test/test_util.cc
     1.1 --- a/.hgignore	Wed Apr 11 16:54:09 2018 +0200
     1.2 +++ b/.hgignore	Fri Apr 13 00:45:38 2018 +0200
     1.3 @@ -61,3 +61,4 @@
     1.4  __pycache__
     1.5  *.pyc
     1.6  test/python_tests/test?
     1.7 +
     2.1 --- a/src/message_api.c	Wed Apr 11 16:54:09 2018 +0200
     2.2 +++ b/src/message_api.c	Fri Apr 13 00:45:38 2018 +0200
     2.3 @@ -1817,7 +1817,8 @@
     2.4          message *src,
     2.5          message **dst,
     2.6          const char* to_fpr,
     2.7 -        PEP_enc_format enc_format
     2.8 +        PEP_enc_format enc_format,
     2.9 +        PEP_encrypt_flags_t flags
    2.10      )
    2.11  {
    2.12      assert(session);
    2.13 @@ -1909,8 +1910,13 @@
    2.14      
    2.15      char* encrypted_key_text = NULL;
    2.16      size_t encrypted_key_size = 0;
    2.17 -    status = encrypt_and_sign(session, keys, priv_key_data, priv_key_size,
    2.18 +    
    2.19 +    if (flags & PEP_encrypt_flag_force_unsigned)
    2.20 +        status = encrypt_only(session, keys, priv_key_data, priv_key_size,
    2.21                                &encrypted_key_text, &encrypted_key_size);
    2.22 +    else
    2.23 +        status = encrypt_and_sign(session, keys, priv_key_data, priv_key_size,
    2.24 +                                  &encrypted_key_text, &encrypted_key_size);
    2.25      
    2.26      if (!encrypted_key_text) {
    2.27          status = PEP_UNKNOWN_ERROR;
     3.1 --- a/src/message_api.h	Wed Apr 11 16:54:09 2018 +0200
     3.2 +++ b/src/message_api.h	Fri Apr 13 00:45:38 2018 +0200
     3.3 @@ -80,7 +80,8 @@
     3.4          message *src,
     3.5          message **dst,
     3.6          const char* to_fpr,
     3.7 -        PEP_enc_format enc_format
     3.8 +        PEP_enc_format enc_format,
     3.9 +        PEP_encrypt_flags_t flags
    3.10      );
    3.11  
    3.12  
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/test/convenience_scripts/keygen_for_test.py	Fri Apr 13 00:45:38 2018 +0200
     4.3 @@ -0,0 +1,101 @@
     4.4 +import argparse
     4.5 +import gnupg
     4.6 +import os
     4.7 +import subprocess
     4.8 +
     4.9 +parser = argparse.ArgumentParser()
    4.10 +parser.add_argument("num_keys", type=int)
    4.11 +parser.add_argument("real_name_prefix")
    4.12 +parser.add_argument("email_address_prefix")
    4.13 +parser.add_argument("output_root", help="root of where to stick the keys (keys go into pub/ and priv/ accordingly)")
    4.14 +parser.add_argument("--no_suffix", "-x", help="Use name and email address as is - do not create incremental ones based on the input", action='store_true')
    4.15 +parser.add_argument("--hgadd", "-a", help="hg add the created keyfiles", action='store_true')
    4.16 +
    4.17 +args = parser.parse_args()
    4.18 +
    4.19 +pub_path = os.path.join(args.output_root, "pub")
    4.20 +priv_path = os.path.join(args.output_root, "priv")
    4.21 +
    4.22 +homedir = os.path.join(os.path.expanduser('~'),".gnupg")
    4.23 +print("GNUPGHOME=" + homedir + "\n")
    4.24 +
    4.25 +try:
    4.26 +    gpg = gnupg.GPG(gnupghome=homedir) 
    4.27 +except TypeError:
    4.28 +    gpg = gnupg.GPG(homedir=homedir)
    4.29 +
    4.30 +name = args.real_name_prefix
    4.31 +email = args.email_address_prefix
    4.32 +    
    4.33 +suffix = not args.no_suffix
    4.34 +
    4.35 +name_prefix = args.real_name_prefix + " "     
    4.36 +e_split = args.email_address_prefix.split('@')
    4.37 +e_split_len = len(e_split)
    4.38 +
    4.39 +if (e_split_len > 2):
    4.40 +    for j in range(e_split_len - 1):
    4.41 +        email_0 = email_0 + e_split[j] + "@"
    4.42 +    email_0 = email_0 + _ + i_str + e_split[e_split_len - 1]    
    4.43 +    email_1 = e_split_len[e_split_len - 1]
    4.44 +    e_split = [email_0, email_1]
    4.45 +    e_split_len = 2
    4.46 +elif (e_split_len == 0):
    4.47 +        email_0 = "doge"    
    4.48 +        email_1 = "dogepile.me"
    4.49 +        e_split = [email_0, email_1]
    4.50 +        e_split_len = 2
    4.51 +    
    4.52 +num_keys = args.num_keys
    4.53 +    
    4.54 +for i in range(num_keys):
    4.55 +    i_str = str(i)
    4.56 +
    4.57 +    if suffix:
    4.58 +        
    4.59 +        name = name_prefix + i_str
    4.60 +        
    4.61 +        if e_split_len == 1:
    4.62 +            email = e_split[0] + "_" + i_str
    4.63 +        elif e_split_len == 2:
    4.64 +            email = e_split[0] + "_" + i_str + "@" + e_split[1]
    4.65 +
    4.66 +    print("Generating key data for " + name + " " + email + "\n")
    4.67 +    input_data = gpg.gen_key_input(key_type="RSA", key_length=2048, subkey_type="RSA", subkey_length=2048, expire_date=0, name_real=name, name_email=email, password="")
    4.68 +    if not input_data:
    4.69 +        raise Exception('Input data not created in iteration ' + str(i))
    4.70 +    
    4.71 +    print(input_data)
    4.72 +    key = None
    4.73 +    key = gpg.gen_key(input_data)
    4.74 +    if not key:
    4.75 +        raise Exception('Key not created in iteration ' + str(i))
    4.76 +    pubkey = None
    4.77 +    privkey = None
    4.78 +    
    4.79 +    fpr = key.fingerprint
    4.80 +    print("Generated " + fpr)
    4.81 +    key_filename_prefix = e_split[0] + "_" + i_str + "-0x" + fpr[-8:] + "_"
    4.82 +
    4.83 +    
    4.84 +    pubkey = gpg.export_keys(fpr)
    4.85 +    privkey = gpg.export_keys(fpr, True)
    4.86 +
    4.87 +    pubkey_filename = os.path.join(pub_path, key_filename_prefix + "pub.asc")
    4.88 +    privkey_filename = os.path.join(priv_path, key_filename_prefix + "priv.asc")    
    4.89 +    
    4.90 +    # Write to file
    4.91 +    pubkey_file = open(pubkey_filename,'w')
    4.92 +    pubkey_file.write(pubkey)
    4.93 +    pubkey_file.close()
    4.94 +    privkey_file = open(privkey_filename,'w')    
    4.95 +    privkey_file.write(privkey)
    4.96 +    privkey_file.close()
    4.97 +        
    4.98 +    # Delete keys from keyring
    4.99 +    gpg.delete_keys(fpr, True) # True => private keys
   4.100 +    gpg.delete_keys(fpr)
   4.101 +
   4.102 +    if (args.hgadd):
   4.103 +        subprocess.run(["hg", "add", pubkey_filename])
   4.104 +        subprocess.run(["hg", "add", privkey_filename])
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/test/encrypt_attach_private_key_test.cc	Fri Apr 13 00:45:38 2018 +0200
     5.3 @@ -0,0 +1,217 @@
     5.4 +// This file is under GNU General Public License 3.0
     5.5 +// see LICENSE.txt
     5.6 +
     5.7 +#include <stdlib.h>
     5.8 +#include <string.h>
     5.9 +#include "platform.h"
    5.10 +#include <iostream>
    5.11 +#include <fstream>
    5.12 +#include <assert.h>
    5.13 +#include "mime.h"
    5.14 +#include "message_api.h"
    5.15 +#include "keymanagement.h"
    5.16 +#include "test_util.h"
    5.17 +
    5.18 +using namespace std;
    5.19 +
    5.20 +int main() {
    5.21 +    cout << "\n*** encrypt_attach_private_key_test ***\n\n";
    5.22 +
    5.23 +    PEP_SESSION session;
    5.24 +    
    5.25 +    cout << "calling init()\n";
    5.26 +    PEP_STATUS status1 = init(&session);
    5.27 +    assert(status1 == PEP_STATUS_OK);
    5.28 +    assert(session);
    5.29 +    cout << "init() completed.\n";
    5.30 +
    5.31 +    const char* own_uid = PEP_OWN_USERID;
    5.32 +    const char* diff_uid_0 = "TASTY_TEST_UID_0";
    5.33 +    const char* diff_uid_1 = "TASTY_TEST_UID_1";
    5.34 +
    5.35 +    string input_key;
    5.36 +    const char* main_addr = "priv-key-import-test-main@darthmama.cool";
    5.37 +    pEp_identity* main_me = NULL;
    5.38 +    const char* fpr_main_me = "8AB616A3BD51DEF714B5E688EFFB540C3276D2E5";
    5.39 +    pEp_identity* same_addr_same_uid = NULL;
    5.40 +    const char* fpr_same_addr_same_uid = "359DD8AC87D1F5E4304D08338D7185F180C8CD87";
    5.41 +    pEp_identity* same_addr_diff_uid = NULL;
    5.42 +    const char* fpr_same_addr_diff_uid = "B044B83639E292283A3F6E14C2E64B520B74809C";
    5.43 +
    5.44 +    const char* diff_addr_0 = "priv-key-import-test-other_0@darthmama.cool";
    5.45 +    pEp_identity* diff_addr_same_uid = NULL;
    5.46 +    const char* fpr_diff_addr_same_uid = "C52911EBA0D34B0F549594A15A7A363BD11252C9";
    5.47 +    
    5.48 +    const char* diff_addr_1 = "priv-key-import-test-other_1@darthmama.cool";
    5.49 +    pEp_identity* diff_addr_diff_uid = NULL;
    5.50 +    const char* fpr_diff_addr_diff_uid = "567212EFB8A3A76B1D32B9565F45BEA9C785F20A";
    5.51 +    
    5.52 +    PEP_STATUS status = PEP_STATUS_OK;
    5.53 +
    5.54 +    // key for main own user
    5.55 +    // 8AB616A3BD51DEF714B5E688EFFB540C3276D2E5
    5.56 +    input_key = slurp("test_keys/pub/priv-key-import-test-main_0-0x3276D2E5_pub.asc");
    5.57 +    status = import_key(session, input_key.c_str(), input_key.length(), NULL);
    5.58 +    assert(status == PEP_STATUS_OK);
    5.59 +
    5.60 +    input_key = slurp("test_keys/priv/priv-key-import-test-main_0-0x3276D2E5_priv.asc");
    5.61 +    status = import_key(session, input_key.c_str(), input_key.length(), NULL);
    5.62 +    assert(status == PEP_STATUS_OK);
    5.63 +        
    5.64 +    // key with same address and user_id (initially untrusted, then trusted)
    5.65 +    // 359DD8AC87D1F5E4304D08338D7185F180C8CD87
    5.66 +    input_key = slurp("test_keys/pub/priv-key-import-test-main_1-0x80C8CD87_pub.asc");
    5.67 +    status = import_key(session, input_key.c_str(), input_key.length(), NULL);
    5.68 +    assert(status == PEP_STATUS_OK);
    5.69 +
    5.70 +    // key with same address and to have different (non-aliased) user_id (initially untrusted, then trusted)
    5.71 +    // B044B83639E292283A3F6E14C2E64B520B74809C
    5.72 +    input_key = slurp("test_keys/pub/priv-key-import-test-main_2-0x0B74809C_pub.asc");
    5.73 +    status = import_key(session, input_key.c_str(), input_key.length(), NULL);
    5.74 +    assert(status == PEP_STATUS_OK);
    5.75 +
    5.76 +    // key with different address to have same user_id (initially untrusted, then trusted)
    5.77 +    // C52911EBA0D34B0F549594A15A7A363BD11252C9
    5.78 +    input_key = slurp("test_keys/pub/priv-key-import-test-other_0-0xD11252C9_pub.asc");
    5.79 +    status = import_key(session, input_key.c_str(), input_key.length(), NULL);
    5.80 +    assert(status == PEP_STATUS_OK);
    5.81 +        
    5.82 +    // key with different address to have different user_id (initially untrusted, then trusted)
    5.83 +    // 567212EFB8A3A76B1D32B9565F45BEA9C785F20A
    5.84 +    input_key = slurp("test_keys/pub/priv-key-import-test-other_1-0xC785F20A_pub.asc");
    5.85 +    status = import_key(session, input_key.c_str(), input_key.length(), NULL);
    5.86 +    assert(status == PEP_STATUS_OK);
    5.87 +    
    5.88 +    // Own identity with default key etc
    5.89 +    main_me = new_identity(main_addr, fpr_main_me, own_uid, "PrivateKey Import Test");
    5.90 +    status = set_own_key(session, main_me, fpr_main_me);
    5.91 +    assert(status == PEP_STATUS_OK);
    5.92 +
    5.93 +    assert(strcmp(main_me->fpr, fpr_main_me) == 0);
    5.94 +    
    5.95 +    // Identity with same address and user_id - the fpr here will be ignored in update_identity and friends.
    5.96 +    same_addr_same_uid = new_identity(main_addr, fpr_same_addr_same_uid, own_uid, "PrivateKey Import Test");
    5.97 +    // Might be problematic with myself()?
    5.98 +    
    5.99 +    // Identity with same address and different user_id
   5.100 +    same_addr_diff_uid = new_identity(main_addr, fpr_same_addr_diff_uid, diff_uid_0, "PrivateKey Import Test");
   5.101 +    assert(same_addr_diff_uid);
   5.102 +    
   5.103 +    // Identity with diff address and same user_id
   5.104 +    diff_addr_same_uid = new_identity(diff_addr_0, fpr_diff_addr_same_uid, own_uid, "PrivateKey Import Test");
   5.105 +    assert(diff_addr_same_uid);
   5.106 +
   5.107 +    // Identity with different address and different user_id
   5.108 +    diff_addr_diff_uid = new_identity(diff_addr_1, fpr_diff_addr_diff_uid, diff_uid_1, "PrivateKey Import Test");
   5.109 +    assert(diff_addr_diff_uid);
   5.110 +
   5.111 +    message* msg_same_addr_same_uid = new_message(PEP_dir_outgoing);
   5.112 +    msg_same_addr_same_uid->from = main_me;
   5.113 +    msg_same_addr_same_uid->shortmsg = strdup("Greetings, humans!");
   5.114 +    msg_same_addr_same_uid->longmsg = strdup("This is a test of the emergency message system. This is only a test. BEEP.");
   5.115 +    msg_same_addr_same_uid->attachments = new_bloblist(NULL, 0, "application/octet-stream", NULL);
   5.116 +
   5.117 +    message* msg_same_addr_diff_uid = message_dup(msg_same_addr_same_uid);
   5.118 +    message* msg_diff_addr_same_uid = message_dup(msg_same_addr_same_uid);       
   5.119 +    message* msg_diff_addr_diff_uid = message_dup(msg_same_addr_same_uid);       
   5.120 +
   5.121 +    // Case 1:
   5.122 +    // Same address, same user_id, untrusted
   5.123 +    assert(msg_same_addr_same_uid);        
   5.124 +    identity_list* to_list = new_identity_list(same_addr_same_uid);
   5.125 +    message* enc_same_addr_same_uid_untrusted = NULL;
   5.126 +    status = encrypt_message_and_add_priv_key(session,
   5.127 +                                              msg_same_addr_same_uid,
   5.128 +                                              &enc_same_addr_same_uid_untrusted,
   5.129 +                                              fpr_same_addr_same_uid,
   5.130 +                                              PEP_enc_PGP_MIME,
   5.131 +                                              0);
   5.132 +
   5.133 +    // Case 2:
   5.134 +    // Same address, same_user_id, trusted
   5.135 +    status = trust_personal_key(session, same_addr_same_uid);
   5.136 +    assert(status == PEP_STATUS_OK);
   5.137 +    message* enc_same_addr_same_uid_trusted = NULL;
   5.138 +    status = encrypt_message_and_add_priv_key(session,
   5.139 +                                              msg_same_addr_same_uid,
   5.140 +                                              &enc_same_addr_same_uid_trusted,
   5.141 +                                              fpr_same_addr_same_uid,
   5.142 +                                              PEP_enc_PGP_MIME,
   5.143 +                                              0);
   5.144 +
   5.145 +    // Case 3:
   5.146 +    // Different address, same user_id, untrusted
   5.147 +    assert(msg_diff_addr_same_uid);        
   5.148 +    identity_list* to_list_1 = new_identity_list(diff_addr_same_uid);
   5.149 +    message* enc_diff_addr_same_uid_untrusted = NULL;
   5.150 +    status = encrypt_message_and_add_priv_key(session,
   5.151 +                                              msg_diff_addr_same_uid,
   5.152 +                                              &enc_diff_addr_same_uid_untrusted,
   5.153 +                                              fpr_diff_addr_same_uid,
   5.154 +                                              PEP_enc_PGP_MIME,
   5.155 +                                              0);
   5.156 +
   5.157 +    // Case 4:
   5.158 +    // Different address, same user_id, trusted
   5.159 +    status = trust_personal_key(session, diff_addr_same_uid);
   5.160 +    assert(status == PEP_STATUS_OK);
   5.161 +    message* enc_diff_addr_same_uid_trusted = NULL;
   5.162 +    status = encrypt_message_and_add_priv_key(session,
   5.163 +                                              msg_diff_addr_same_uid,
   5.164 +                                              &enc_diff_addr_same_uid_trusted,
   5.165 +                                              fpr_diff_addr_same_uid,
   5.166 +                                              PEP_enc_PGP_MIME,
   5.167 +                                              0);
   5.168 +
   5.169 +    // Case 5:
   5.170 +    // Same address, different user_id, untrusted
   5.171 +    assert(msg_same_addr_diff_uid);        
   5.172 +    identity_list* to_list_2 = new_identity_list(same_addr_diff_uid);
   5.173 +    message* enc_same_addr_diff_uid_untrusted = NULL;
   5.174 +    status = encrypt_message_and_add_priv_key(session,
   5.175 +                                              msg_same_addr_diff_uid,
   5.176 +                                              &enc_same_addr_diff_uid_untrusted,
   5.177 +                                              fpr_same_addr_diff_uid,
   5.178 +                                              PEP_enc_PGP_MIME,
   5.179 +                                              0);
   5.180 +
   5.181 +    // Case 6:
   5.182 +    // Same address, different user_id, trusted
   5.183 +    status = trust_personal_key(session, same_addr_diff_uid);
   5.184 +    assert(status == PEP_STATUS_OK);
   5.185 +    message* enc_same_addr_diff_uid_trusted = NULL;
   5.186 +    status = encrypt_message_and_add_priv_key(session,
   5.187 +                                              msg_same_addr_diff_uid,
   5.188 +                                              &enc_same_addr_diff_uid_untrusted,
   5.189 +                                              fpr_same_addr_diff_uid,
   5.190 +                                              PEP_enc_PGP_MIME,
   5.191 +                                              0);
   5.192 +
   5.193 +    // Case 7:
   5.194 +    // Different address, different user_id, untrusted
   5.195 +    assert(msg_diff_addr_diff_uid);        
   5.196 +    identity_list* to_list_3 = new_identity_list(diff_addr_diff_uid);
   5.197 +    message* enc_diff_addr_diff_uid_untrusted = NULL;
   5.198 +    status = encrypt_message_and_add_priv_key(session,
   5.199 +                                              msg_diff_addr_diff_uid,
   5.200 +                                              &enc_diff_addr_diff_uid_untrusted,
   5.201 +                                              fpr_diff_addr_diff_uid,
   5.202 +                                              PEP_enc_PGP_MIME,
   5.203 +                                              0);
   5.204 +
   5.205 +    // Case 8:
   5.206 +    // Different address, different user_id, trusted
   5.207 +    status = trust_personal_key(session, diff_addr_diff_uid);
   5.208 +    assert(status == PEP_STATUS_OK);
   5.209 +    message* enc_diff_addr_diff_uid_trusted = NULL;
   5.210 +    status = encrypt_message_and_add_priv_key(session,
   5.211 +                                              msg_diff_addr_diff_uid,
   5.212 +                                              &enc_diff_addr_diff_uid_trusted,
   5.213 +                                              fpr_diff_addr_diff_uid,
   5.214 +                                              PEP_enc_PGP_MIME,
   5.215 +                                              0);
   5.216 +
   5.217 +    release(session);
   5.218 +    
   5.219 +    return 0;
   5.220 +}
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/test/test_keys/priv/priv-key-import-test-main_0-0x3276D2E5_priv.asc	Fri Apr 13 00:45:38 2018 +0200
     6.3 @@ -0,0 +1,63 @@
     6.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
     6.5 +
     6.6 +lQOYBFrPrZIBCAD7Xnh/WJda9mBwu9lAkJ9ON1KCo9JFvjw89TKA3nOT55NKMUjE
     6.7 +4D5pZm0DhipUBSB6ylVC+FkxdTydeqHeV4/ktBITi/hc5qiMPt0fVS9jlX2rUl2z
     6.8 +vvXmAX5erHx6bXkptbZdOtCOr1hRzU3An/KODdyAcIRClBYkeR1sB4/dLvfqLAMQ
     6.9 +UpoimWQrzS9+AOtU5tMGFjmhjF3T+cRXdL5zgPaIGzt9oV3dHZYgGGSgDxXNFK1D
    6.10 +4jUv2AsyZYL4qLnWvZlbBHvaTbbsP+K5xXI6VpzPWEIHT4v4j0+agGrzLsemQsqT
    6.11 +lsYopII8AtQIc7qWL+DvqUbnBCiamUBYPaKlABEBAAEAB/41kmB1aXzWZMhQdmR6
    6.12 +i2f8PDOgRog/l2fQqQQyrVYuCS5do0vKM61xeqQUmnEmd3JA4SLTM0kVDpKU0Ggz
    6.13 +ke9Hk23/zvanW/xDaXloXlgLbfZ6vwLb1kCjXKGhTTr5P6ARONotG+YLZsjYpDvk
    6.14 +J+KCjmc2U2SIqPVgIBTaa3Eodtg7OMnRrSILlqFvxYRcV3Z/lDXNGwyZ+hcDX/tJ
    6.15 +TXQMwAxPh+Z3fbMfi1GhlDd+Axq9Atb4sF4WJLc3/YY33x032UnkZ8A6LAZcdrUX
    6.16 +e+Qtu2su8906Dbnf+roqEzISfjuyZS4mWnTWgjtKtz0rOzLhMj/YPOeFYRtHZ21x
    6.17 +GVahBAD7qx+9T6JiCljn+CTZBQ9sS3C+t/4odW6wFii2HPSZikPvw9nKluSOetfv
    6.18 +YVuL9uk7IMPBfwYrYlPsY1F9BTs0nrtLjcAWUeFL/YIv6GS3w9c3GsQPgUxRTK8V
    6.19 +Gl2onpNX1nTrg/wb3ZZF+RIomlqvc4kO7HEmMCxWivL5MnZjIQQA/7IHBBiCu4/I
    6.20 +fMfrGz3ZwlIIuCqArHhRcFUJaJCfSYOeSTX9ZWuilZk45WFcYuCEStCBJNDyEsia
    6.21 +YzUZkFaWq8c6fYj7PFFh+XExiMARGfY0dAbmoHzERsAw9pxIKkE1vd7vysn2dd/C
    6.22 +Pn+gIaCKYFVJXeDW487F9Nk97UqKUwUD/R7lXgWsCd1mY5p99DdhY8uTrZphsSBg
    6.23 +XJbva8OMkIhtS1hdLx6Gw6f7dnDYWEyksbVMGrqqXmEuo09Nc6JSFdURLoch2qvJ
    6.24 ++IeIwAT0hHJc4/6KduxmP3zCKU3seN53vWmroT5d8pjHIF2SXOfDp6JtwgJ8xcjU
    6.25 +R71EUS4gtHfaOUm0QVByaXZhdGVLZXkgSW1wb3J0IFRlc3QgPHByaXYta2V5LWlt
    6.26 +cG9ydC10ZXN0LW1haW5AZGFydGhtYW1hLmNvb2w+iQE4BBMBCgAiBQJaz62SAhsv
    6.27 +BgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRDv+1QMMnbS5UI+B/0VACN9je7R
    6.28 +pO+mJpK77Rt6h9Y1qzBOJxGxgErdzq1WG1/igKMlSbAlJwb/tT7XD44c/dN+OD8+
    6.29 +JOEzmQEWbQ6Jvu/7SIvqt2iGhSkxGQFLdR9YMt7vGmCB/qxza4jwTSK8vfBymb/2
    6.30 +rgYLNT/MZTl7trkQg9n2f3DGle34R+fepY8HU/xXTRK+gevyjbRIP1/QuL75tKoD
    6.31 +ldhRV6YNcinT0gpyN2Ld6KoCXnGB73HJUqisL8S12AHhr4o1bJVW1pA4HFobTV59
    6.32 +2Z6gDopc4WuEFX1UqvX5YWKMu1nmEWLBuYS4I9HejC3KocBEmJFicG/FEF+D22zM
    6.33 +1AiUnoZfKOgwnQOYBFrPrZIBCADDNpQPiXKiYYBxe/peYRgYT2CH4r+j14mU9Sm2
    6.34 +ZDQTqp9oig3T1u02m1XoBFMoV9NpcN6L3r7/Xs9xXTQusumcPy5CO8snL+DLpeS9
    6.35 +yuvquzsWKAUc4MxGoo/Kubuot7GDEXH7TXvbrWSSFGnsWITrvEXvLC5wb4THMYsF
    6.36 +CS7uZM2TNE5UcDkY69xOa53ivjRrR/YHTOOwrh2EaPRUasfqBse5GRXbamzi6Lrq
    6.37 +qy+4Q/QJ/OoWyCKCXcrpw8anUc7AWomJ0U0NQV6YVykjE78QgcO4jcG54/ow8N48
    6.38 +5cffCdquOTqv5gaGVZour6E1+SZvnPPkZtJivJ2P51GeHo3hABEBAAEAB/oDTkKs
    6.39 +WdkLOyWzdkR00fCC+TV4I5y4Fm5V4N9u6gw64NwqxzteoPB604n9QB/U38Tcmkd9
    6.40 +0fIvzUrBFObCm4TAILlEsEdwyiX56Nz3t6PuVrM/J9hrUbq1KlZPRL0oPqEWyDuN
    6.41 +rv/tO3F9KvOUEnfWF/B4EVUBfNVK/BGqY9+2Xs7MVqKeO4VH0I4dzB2cE6WBUQGC
    6.42 +ljQ+snHMZplS64gFYey9Jrf6NfmQbB9Iu45Ch2ZwLS3SyjvrB2gNsJgahc7HstLt
    6.43 +Qe8LLEfYvKz/ohfMxbsA3zkQukdDbLoKHtZc6Ry6yS4jbv/OwP7wxTlS7S3K4UZ2
    6.44 +EH+4uNxWeUS5jdchBADYjWqS4Mg3W+u3Niz0JpwFoQ1SQiAQSAKTdBVsP7eorlaH
    6.45 +6jyP3QeE8r+mR/V/jW5/vhCxc4VbnIqABJDj4J9qxF7/Dcj6nkw2pC+eb6OjD45o
    6.46 +8RHmInPr3eD2D699AWS7RwG7bubzP5SB4k3sem6RMdBlKrVskldF8VdoLAKssQQA
    6.47 +5sYKj8d5aFvgbvubXgoA90/TPeCiMPDtA2e1Rp9tAEj5bm9JJCMOKAqHlw64pnMr
    6.48 +u+JJFjULClkAPs+O6itR6JxalpEEfpU2kRuuWF8f7Vybjtl2bqNrtrLLSilqRllS
    6.49 +H+XM+NdCIGUuaKLsYH4HE8CiGiMv+zh1ecJF27QzgDED/1ZvXwgouP6r+kw8guS4
    6.50 +w5+Le6U46XJI1Z1R7VdnKmrLlaiumNU68rTHcHUeyWzCLrKLwFzurnVSIfXSkk3C
    6.51 +XjmIzmj+j1IhtMdmS9G7HwZIkAsIHnyg5bCrRji5wnTKgXGa1OHWovdzfzi8Nb+Q
    6.52 +OeyD0D7nVyAWas0H7OnAmxd6RdKJAj4EGAEKAAkFAlrPrZICGy4BKQkQ7/tUDDJ2
    6.53 +0uXAXSAEGQEKAAYFAlrPrZIACgkQivz/NoHEiTKVJggAhe69Q1ezvnSg0k06HKrL
    6.54 +ApTWFzcQEe8msjLQ5Y2Ucyuo5ssBZ/NZ6Plnfv2E+Ft4nWY+8hkyDCWvmWRcAz2o
    6.55 +nEHwG6lNLTEcXG6rKCtzOyIt2A7OWFNwckLPN71JGFMIwliNKTgSBBWAqDiBcjw3
    6.56 +QKj70slZOOrKa0+YqChH2wThOHtMFoiZYXM3OSq0whAcninita0VOXopNhNxcYvJ
    6.57 +V80JWbLlTXzR5B+fMwQFndQNy04uA0HLi1ubTSipDHIxmiBK0ZyLsnwHvfmOlPG4
    6.58 +zMQAubxrda2GtPr26WQ1AW2x2v5zTbcqBYl/BaMEItYVRO6VcpTRYuHmiriAhGff
    6.59 +qTknB/9jgoPVD/YUiVgrVjNWN1aY0DZig0jrk6BSNXPW5QAMcfr3LBZ20cgQ4ved
    6.60 +9IOh66wnxvPi2LMXB8SWyeSO0LMql75Keh61GLqh8FyZP7yxUAhodyVdic5R/ALA
    6.61 +U5S9Eve1Fw72YPOmAAYrjcDlKy2P1yxAZnyU9yDsmPXMSxCb75mGsAcCqsjZzyBn
    6.62 +mXKU3TES6Yl3JF11oV9romIPZOk4sqHDXozS9BOdxu0IyXmvUJorlpNnP5HIQELf
    6.63 +rhRiYx+QwBpSmNAyUseRizvdXmzdrvDrIEgyV4cyFIRFbRZKxTJ6ecGmC5P5+g7w
    6.64 +k4Ovdx8fotrONgZ5tXgu7cF/HLZw
    6.65 +=l1fW
    6.66 +-----END PGP PRIVATE KEY BLOCK-----
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/test/test_keys/priv/priv-key-import-test-main_1-0x80C8CD87_priv.asc	Fri Apr 13 00:45:38 2018 +0200
     7.3 @@ -0,0 +1,63 @@
     7.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
     7.5 +
     7.6 +lQOYBFrPrZMBCADHliMZZczNc2nXrm+SwDpVekZ7Uz/m2nRRmhH7OCnvIIw4zda3
     7.7 +QDvmJbGKRnlOkAGn7+WoZcmPqu5lfJHzC02sfhqCrGaqdb7RDkYGhulTtgwxf/GV
     7.8 +QGEgroQvDKLLRVAcE/rhIbz9stlWPMLwNlkvfXwGi+q5h2AxIA4uDnx9YcrK0NTz
     7.9 +5F/RCXm/yw/DxTlCK66RdWk1ysmvWGeEkwB8/0lVcgNpifSMc6LhChotGnwxLJe1
    7.10 +fhOTcsep8TdaJ2LHzrSO2rzx8rzMkHCpWrw71vWs1XhO7wTgvptOMDNuXsp4Pzyb
    7.11 +VFsEviWhUJoC5Zf1QF+jwyqm+WWaqr5e38hxABEBAAEAB/0cvngum7Urr6ACMnqa
    7.12 +IXolPldxQnOVDUgsSmqlihir+j2Hnsl6GdOmmS4hEnY9BMtgQtIJ9yLYwI7V6eNh
    7.13 +I/MbUQwDXs3oZc3F8O7P2NU4u6K07E7AJoX2fXvHBORbLw/TA2Oh0ciUpxHa9CRF
    7.14 +ESa2CrX2gWccMi191baFFowCSHZWN/7lG9o6txO0hKcgQ1Ix8BA0gbYlZgGHfS5f
    7.15 +1XU4eQSAhUCNjxmP3r5Yaef2SxdCQ7SS+5ihtVv6MUrFs73lgZr/ymJKrbkBU0SA
    7.16 +P7EuHLM0GUW8crRJx4WnSLbsS2A9DcKhz3oSeWKyGiujPo7/H70jMmK61qEGqBP+
    7.17 +OG0rBADN4T+Z0OMApDX2kO97oHnN7jLvq6KEIOg+koMy9E4F+VVD5NXxkho8gFuD
    7.18 +cb7ImEojcwAX5k58Q8HxwD+p0tr24A3N/J38KK/nT8RbwL9X3t/615EtrvUhMGX2
    7.19 +bvaP0Kwy+D/GFKYasEYuNNRSY8nUSQ6dwnhOfuVAN5PXFAihrwQA+CysjeZMJ3Z0
    7.20 +7Fz/avC9JZ1w1CWNK9C1D2esRFXMAjuQm5P1IDxDB9SJwxqcCjqdcvKTizIjrlSW
    7.21 +MiEnF1Orar7u9I5SO3KyoThivadUk3C6Imyq8Vt3FSJqwBvSSA/ucA0zNWNucp4D
    7.22 +fvUe+GXOTudDA5ZPdZXEizncGMwVX98EAO+KwMR4N5NQW5hbfidip4Ca5/3+73Bf
    7.23 +e9RcK3rGgqiL16K9NgxSdBkv4xtKYHO/OLZz9o1tYji4iFegRa7+aY+ZXpEv4Vis
    7.24 +0NARKHPnDXY3EjxgjEjyD7m9nb6CceVc0LDVaiA+n9otKd4T9EhvgWl9nPtB9xUo
    7.25 +x7PnkDe6Mvu9P1C0QVByaXZhdGVLZXkgSW1wb3J0IFRlc3QgPHByaXYta2V5LWlt
    7.26 +cG9ydC10ZXN0LW1haW5AZGFydGhtYW1hLmNvb2w+iQE4BBMBCgAiBQJaz62TAhsv
    7.27 +BgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCNcYXxgMjNhzRRB/sGrf/k8xF/
    7.28 +gf/RalVtFjLzOjZ8OeR1BRDkSQuKprOTmhyhkOjJbCoUg4yem7J7bAbitTCG0UYH
    7.29 +A8d/KsawOfxFGrnK/NOv0hW64AVhqiceHK9QpVUK56uC/kgP5wNGIp95gSAQP8YI
    7.30 +myMsiln6xVnQKMTPRvZrelJIUhHek1wc0LkGZM6fqCy3iK6Dp3kU9o7sT67Rx4mv
    7.31 +BKgExlIxHc3t0XKWE85qcWnWwCFeGyTriIct+GjXQjskQsT5HGg3PjRHKlhe0/K1
    7.32 +yNDKKqtWGOyFzicRKmIZXLWGyzLw1hMaUXTuuiiCM1e3l0I1EcBhAgraCNCvLL4I
    7.33 +HMbgBLjBLSl4nQOYBFrPrZMBCADmOdxDjkODprEVGeyzezf2BALQB5GVu/dMt33g
    7.34 +atXLV5oj6Vwcwg8i71UaoMzxdWyHLOyED5yzYof0FvsJYLcTkt5uq/3hbJaF34FN
    7.35 +D5K+4wlp88mV5k3HDllyErNaVq/PoO09icJdIHNOO6sSoOkYKD1TuWR5oMotuUDF
    7.36 +rd6HZD7eYNaLQ0cvT0F66cTPa8EAAggDoWc4nJAqmIzFbICeGcNG2tgJurCgIe63
    7.37 +pGTIwwaRT//p3HWASMOIVxa80kucUCqOCCuP3wX6DOCXs9F2eoi4zGe6p3nnuWGv
    7.38 +TiH75beB6TmfflGCBvI7uDLkZkxpKD+bXNuFaGRnl4nbB/3NABEBAAEAB/9nnfL8
    7.39 +lLLeNc/NZ3WY8gQlvXhmmIF1mrua05rbvjmq4yqEryq95rlZR85NxcF3ixnlXNq2
    7.40 +NTCZq+b0fMNPXTAIpzllJhOFuZGlfwp63F93ekdqYEaCKL0osdSf+rquFgXatNsR
    7.41 +r0bDEy/SLhi4saM3NCUl4XLPKwbTvWThk3dsB1+UuXgIr4mOi0ElRyJhgQnMemkA
    7.42 +SfGqwcCV5ArT0BiyTJuCC7ZCItUmHfIl8vj/Am1uosTYaJOoJ7g+aHlk9zsqg2bU
    7.43 +ATISqumzJjQ6Ov2ge4BTzf/Mg2Kyn2+r6KOM9oDL8wEJtGt9dOR878000GQXeCts
    7.44 +JDjnybJSkWyA+48hBADutcpTJR2ENPirDNAxagCACOS99Rx+937icRIvS5UtwMEs
    7.45 +ixjunowAH8ieTykhkjZF19PQV8IUabV+sZPn/3hLk03lVX4xIkFfqyvA+i9mbcMD
    7.46 +Wp4rJUxShXfysN9+HqxRxsrcIy15FZe0Hw2Uib9zP+p+UhhVLD85FPfF6dDbdwQA
    7.47 +9ubBlwenGJsIwXlYfDMwakywXtz83ujWM/ErilS9CfBk5cKRlWxacER4fL36iuua
    7.48 +C6I5JxKB3midri9sHXkX5g1TftsDJ9+U7r5jzVVQRmmiwODMg1BhnjOCMd0aAXsY
    7.49 +7BASYR/sH0xsK7JB9tdf4TdwI21gQRaw0sIrrmWnedsEAIeHtrEoUyrJwhTcQDEB
    7.50 +s+6zD17EXvjUwtfvxnH14OsRGQKIAqiRF8ycFVcLfQj1PxIXU1R2cbCMl2nIVTWi
    7.51 +8hpMDF1uMiK5nVRe+Zy2gv/Y1VLJGT6vDQcu2Xwbvrup3oHfYsUBWT70w/JRoS0W
    7.52 +v8djnvzolYyostC0NFph3WInP3qJAj4EGAEKAAkFAlrPrZMCGy4BKQkQjXGF8YDI
    7.53 +zYfAXSAEGQEKAAYFAlrPrZMACgkQ/Sx6poPtYcXZxwgApH4oHptMikZ7MH/5MoyN
    7.54 +j27PhmD47XjOi6lhgRuc2g0/gHcsGpf0aSbLRcRIPiA9IzloDFYinz5ugbzYwRut
    7.55 +PKHOKoXuOs7Ty0lguhyOKadV07yh3mWrRfmIU05MkVz9g7g6C9131+zdbfv2b1hy
    7.56 +qvW6kGGoJEf6e+22JH8AwPXP3jv6AyiZprUY+Ma0U8BGDOd5M80sdT4Qs4Rai424
    7.57 +YpSg0ef3Nh0mN/gBcoVGkoUUu2MOzqgsJm+IoEnRpQOHvKguk1XTwUA69+CRMbJ5
    7.58 +EZ4hKxvm1f/xSutEOUprOykV40ngDmiwgN/gz16mysIRGgLfupUlJbCU17x60Z73
    7.59 +APm6B/9ny7STBTvh1MfaXS16mIJzh+aoxtUqaQzay07GmPazu/cmDbgwNy1HdkFP
    7.60 +woOaOWhpOWclnPTiTiOJPvLYBL1hS0G1E+RpX22whfTPXMHZNyqYO8HXgtQX/j6X
    7.61 +LpWXiTofmNFUIS8MGCERTO0jLdQqLg4jium9Oj+sRbVzEPKsPWcmD5iDxRiyDLbQ
    7.62 +qq1m6jDvPbSfUqWTsZ7vvCNvi6G0z9bBZRfuEvejOyKiDNBdPS2KGyvykdEjmo+7
    7.63 +/xgFBGurZBLw2cq0k22V9Ml3F9/eA99NE7yXMKhxAVVAx0hDNyY3Q1bgfVBn4ZC6
    7.64 +1HxK5QGZGVtdbOvxMS2Y+xq/wD6s
    7.65 +=ffZL
    7.66 +-----END PGP PRIVATE KEY BLOCK-----
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/test/test_keys/priv/priv-key-import-test-main_2-0x0B74809C_priv.asc	Fri Apr 13 00:45:38 2018 +0200
     8.3 @@ -0,0 +1,63 @@
     8.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
     8.5 +
     8.6 +lQOYBFrPrZUBCACnMasfpzRhGDKYjQIN1si1wloLnlfyPoM1QUk+On7Erc3naCYH
     8.7 +DgUUc22oqbBBC1pn5yZpkELg51X3kIJQ+91+iZEHFoqkq+EmjLpmqMqOR//TlAI5
     8.8 +vnxTmwoDJL3PwdXqps1u1pP/ssb9VsZTECA8D3yPBoID1Db2ZhpoMM+u0dq9Rxty
     8.9 +geL8vkcucTMTZhIB9lg0S3R0WTqNPxtWoZiCPjwwvgTbJtI33HrePJKrTqgCCb3K
    8.10 +4CmJsItr14kPArX3cc2ohJvI/6TdpD2+t4ns7RZgB07e94K2LmsZd86nArpZRPiT
    8.11 +360VPibE5DFf7oNCLervmaghjCmYSv6VqauXABEBAAEAB/9C87zXHBn5l7sLI8xi
    8.12 +xlPxlTaB2JLXSvk35kDyTnJdSExgEnDH+nFGU0Lie7E9GtLFMOdM9pwRfBIM5S2K
    8.13 +SJHWDjipYfl7H+k1ir1KRuV2PJbRnz+U6BbZVAiaYagw/iovoUQ60mrJxkmxQYKB
    8.14 +2L9PzdPPYofGCMFJwnFor8M6+eCiGsu5kWW9iGkMHfNesYCh+B0Eeqgt6ZdBqoHj
    8.15 +6nasJ/CEitZi6CUZUdguFF12vomhQAqETh4NB+S20gc4UZOLypF1+Wj7MgWEH08a
    8.16 +PGY/Pwpbf8Fg5kXH9kbMxB5x4shXlTPyA8DKBI6+5M6bariTFQUO1vGuqUvy6Zk5
    8.17 +jIghBADJmfV++l4v0a+89Iu2tPw3H0t3x1vhf6aR65ju5lQpAN5qBH3JtQuHgiHV
    8.18 +E0Rb3IeV8DJ5hysM3ZDdba78WxxrLHAiHPBwbBAKEjl6EtCmFaWRdBkzwudrm+hc
    8.19 +8ra+ohwx7HFHnW2yuToQ4UAGoim3M1MhJoCuhyHlvSAqCmEfOwQA1E7ybWjVUY3y
    8.20 +k9vLMUCEUOveWhRKAyrWlVMWeRYWoOCNxzQ3ilba31EcX8tkupTpyxjjDXCwhhvG
    8.21 +i2Vf250420PTdcXELBk1rMLdLIm6A5r7utIAUaao5jrQgTniPGcPFyGpjlJqJZ0V
    8.22 +6NQJy5y1CKLWBs/PB6xVo0sOnlsUF1UD/A6kYRxU5u0PkLpeB7Kv8/L13Jofygxu
    8.23 +vhQwW941mfoEVZY9TCVlVMUTKEBh3yZQIXlsWZ0Ot2eHHXM+Xa87KZruVNaEbhQW
    8.24 +Wz57Bgd1qaRk7Ua7IXd9Vwaj/QCg3t0T+XwhjbSAt27NM3Q+Dji+tqCqsCmSUuBw
    8.25 +Z8hPXhsDI6HsOF20QVByaXZhdGVLZXkgSW1wb3J0IFRlc3QgPHByaXYta2V5LWlt
    8.26 +cG9ydC10ZXN0LW1haW5AZGFydGhtYW1hLmNvb2w+iQE4BBMBCgAiBQJaz62VAhsv
    8.27 +BgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRDC5ktSC3SAnEjvCACheUkZAlDc
    8.28 +XQhwhZ3KuwIcDhAz/w0xK1svzwSdMAH6sRoOVnwGkKunHiw87BMi2mlbcvFS/YDR
    8.29 +eWx43vjikW9HDcU1RdwVuZD5Hid/cpogXn/aIRTgtkwdDozDzUgegpraVCP5wpJy
    8.30 +oUctmbTKFiil3y4mqv7wVqR8ew0xxGKp8JxNskI3e17KrSCMtHDvKruT78veZW6S
    8.31 +iWOX7UK7FIAKISamkJjOB+HbBMV079W/cG4dXtv0Fksy5f+6a8xLLCdSo1tCY9/c
    8.32 +9j/xe8rHXpqIksE3uVT/ASOxbW60FxdWMv0gs0E5BQgxdckBAmaEckgU8047ksVh
    8.33 +3ofZ9ec2U/JdnQOYBFrPrZUBCADS0VZ4WGL81g0fC1Vq0589ZHxxWvDg3aE8/PSN
    8.34 +0FeOOsBnI5Ac/aM2zHaJWStwzacVkC6e5xyJSdClvYM58U41NU39IW8e7JEEpH0o
    8.35 +aLsq6qPtSAodore4LKFMUmOYsW+c0HdfjsxE/othiLJueNA8PqoCB97zxnXT2M+n
    8.36 +nlzaQea8NS6dQdkt5U2zVE9HiyKBqu/AKx+HP8a9hO5g8ALR0OdCA/+0hlz0mF3G
    8.37 ++Hgw8D0War4X3pWBiLSm7Fm2biY+jCJrUKF2gJVCoumfCCRQWQsGDyVWJtK6mkFZ
    8.38 +7vus6MJfbUEqatmbvFjqrnP8qGohHrMsk6VZHIBjSCXA/jTVABEBAAEAB/0ZwHuN
    8.39 +ENLqqqUIrUQ+W+JgR/WRjTfOaBRJlGa1KgV/+LpG/wecGvmEeJ5kMbHGQkDOOAIR
    8.40 +5A5O0Ob9T/SHL+xLQJspuBtQTjp6tDMbrAts9yOWGQ4vR5CknUMIxSmoXchSAf8K
    8.41 ++7EFHojdHasaJoTdTxRKUjbQVWZQPfRDt+sEt/44GOWjnGRA3BuRtc68NKGq5z+k
    8.42 +KVu6Pu01bsRVsjK/EWg+0Z3Dk8ZxgXSOVJ6VhEpxis33axYaXdME56zDXpXB/7u/
    8.43 +MvboC427a6bavgWjeStU8dyQdSfCx9Tpaeu1AszJcvsdYHGBBinaggBlkCds1kB9
    8.44 +WbZf4ywh6tEbuYVDBADYrLb9zueRX/0eY9zzorYs6Un+Hp8orXQj7Cw0XoXYhYY7
    8.45 +td4DDys6njAErfFxaM1OjAAshpHQfYIYK5vBpGwqalioLF1wmNtYwzFbZ66ceuBo
    8.46 +pexBrZziWoXuAR79opgyqghm+HWRoW3T6S3ZQpptzHpNE/jK8ZrQNkHwxo9fowQA
    8.47 ++RR+aCz9mLd2fT8lOWUetGgsrKQvV+7Eol/jrbL22rZTbAxBuaVSoJf/bRtbMgL+
    8.48 ++Upng7Ku6NEOITcRScVQNr7nbQqH/0iY4knmbSeCMcf7jvorDzPDmrVQV5eXNiXd
    8.49 +EDAya8N8+9K6g2KwLLx/0+kkddeOHmLqjzg78feNAScEANFTfXBOu0TOghF9wc7N
    8.50 +4hMFcPZY43I+WIf6aZ7y+qwdriU++2+N9/a5wFiAh1j1C7DmHfVwPdGzB1uJ24NG
    8.51 +fXJK/eHO9XTM5RHBLz8l2Ovt1HoyELgBhx0/wI5tjpcobwpFZE+PEd0OMOPkD08/
    8.52 +UTt88v49x/EIfSy5TCOl1aIBQ7SJAj4EGAEKAAkFAlrPrZUCGy4BKQkQwuZLUgt0
    8.53 +gJzAXSAEGQEKAAYFAlrPrZUACgkQ6zRDtFIo8nzUcggAx+qKj0jB5DtV07zjFBC2
    8.54 +20dMLB7NflQu9gjrxOLQY8d+WaU8IawmAiautdlSXslvYpjgvaues0neQxPOcuQk
    8.55 +lkOxtAMCKjQx5wvJwmB4LdDHLa2Obxve7saf+tGW6057Vx2n0Xc6XTefd830yo4u
    8.56 +zgLj85+bJV2MsglR5gMMfXu5mr5vuaaM6ZWEFWRE80Vv0CFhDLGYaz9a4gTpvte9
    8.57 +E+bQpD5ijvv8xR84LQNstlux2un7SRcDo8DwkmFfcnLJRsG4slcOOHOXovHB4KZ+
    8.58 +sEJ6ERW3IMGUAKIlS99vntTIcE6G/xWdNow+YQbxA3Bs+JK8X2EBVI/5R7DBVp8m
    8.59 +jkN1CACP9hLUib68hgEWZ0vUZLaxUScRZaq1cdwMOEZi7h2LTtqtnEsWWYN1E3G3
    8.60 +Pe1zPd9qcEUZrCo1ut/lXIVvKKoOj+rGTK3LMkQzruv2cXxLkSoVvJ97Zj1Vyaks
    8.61 +/wWqkhNsDmrpsrhxw1WG4fCeWrnEzyQZJyYI855TByfSxWrCrWkhQeY09+S5NZj5
    8.62 +cgMaRBbdy9JLuYFKYkVk8az0IlOj14mjAbKUdvkEt1y8H+TQAFiKr462fMLVN393
    8.63 +glNnlMify7kYXcxihs+CPwJreb+4zuO1Bc0ha8yQxB8xbjb+POkRZ/ATj/b9I7B3
    8.64 +lO713HGXHUDAF9TeXttRXbSYjFHr
    8.65 +=mKNV
    8.66 +-----END PGP PRIVATE KEY BLOCK-----
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/test/test_keys/priv/priv-key-import-test-other_0-0xD11252C9_priv.asc	Fri Apr 13 00:45:38 2018 +0200
     9.3 @@ -0,0 +1,63 @@
     9.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
     9.5 +
     9.6 +lQOYBFrPz6oBCADE+Zyw50I47+xY/TKJNH9+cpgaUciU/mhMxMdZug+cvAiNBoOF
     9.7 +tWqPfB2MjcnmhSCM0oGYDkRI7au9u1TVG8fAZ7kOoT3vLosKxQtZdCYWSWHCsMIe
     9.8 +iSZoIDPHXL3cM9410HobVB4UBmot5g0J8hXkkTa+nzArc+kjX+pEgtrI2uWoelVF
     9.9 +msAOROBU44gXudwudcUaql8ZzW7nPd9rmAFmOXnhNvW2TiQe/KLTR3L/Gggt1Ytd
    9.10 +nUejzGrioWf4hZX9zdLqMm1a8H+KWYJdjjrIBLRrH1FUXXPQxSuHmSEtlnmg9L9X
    9.11 +6yaaNG+XhxCAoNaSosqxAWqJERzt5lyIRo0pABEBAAEAB/kBSYFG3af+38B7X2Iw
    9.12 +Z9WqcZzBVUX6hUQQtlt4IGFgPJFQvJlo6wPQfrbht355gWayTODYacVz9YuhAIOg
    9.13 +Jd+TCAp7SD3znWn+rsVxdvMVw7J+F3IZSXulBArak2ZRNUyPLPbTTWQp7NXOSXnN
    9.14 +1hVjCjjhm4Aw1H/SQZryCincVKDp7QzaEm7mE8Q91jqobyDU1eodlXuw4i8lQ6HQ
    9.15 +G5kaGeXSskP1gNejoCGHW+nZpGVHfavb5eAQ+ArwE6ZrzUa6TB7oUcQ/+xp8kybU
    9.16 +w93QOV5k43U1xe2HG8KVaTch33SlbbMka4EwDeHkoZza9aUtxYgpHBSRmaZjB1de
    9.17 +4soBBADWPuxTx4LU8mycgqcShSVIEdk8MKUn4KIL9V4Z6agu/Tmd+Ik5OHsHk1gY
    9.18 +n1ne6OrCav3EZ8m5bRPO2sy88Pj+a9WFeSSWGfqOYrlMbKF46w1GNVxJ09jrlbhr
    9.19 +fHqFIfGvZTUN4bCLo93n2C9Cw29lVU2QwpXiiX6jF7FO7ja0KQQA610F2CwtKDnI
    9.20 +1Liy0rqcMObQRaol7ezgpXqZorFdPXGEnKMiNfq69zQOQUeKOL4DrnDTrrVswioa
    9.21 +QMwmRD1hiLsoc2/BIkbgcPk3Dq/MR9yPDAUhkcAZWW68O9TXcpiq5+SQk1oLnXe3
    9.22 +QMCvPLvZCZL9GBJxGn8RXOMSl2d0MQED/0tEHOVYQ2BEnFKZzIffOSVR35GYrEXE
    9.23 +lCvOWmbvtF9QJG1RhHIGuCZUNJOJsTOw9SogMy9xQjBoTBT7yYJk2R5M9//IZLs2
    9.24 +8ePcUtRQpONEvJNnySpaNeAxM8yQEVAgh5keEUNU19O1Jwyzw5Jspv2OY+xxc83I
    9.25 +Qih4+yU3KNrWRoW0RlByaXZhdGVLZXkgSW1wb3J0IFRlc3QgMCA8cHJpdi1rZXkt
    9.26 +aW1wb3J0LXRlc3Qtb3RoZXJfMEBkYXJ0aG1hbWEuY29vbD6JATgEEwEKACIFAlrP
    9.27 +z6oCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEFp6NjvRElLJxt4H/3W4
    9.28 +wp3PQbVw1vo0FX7/IY4KwSZLY7UOZtEmE1EIvBunyM7lrEBEmT4crNOO6Cs8NA76
    9.29 +o5gCGOUVPBXftbqqO284nJEax4kaNg8qYRmbuYwwmQ3QR3Et/diYPa6ZUS+uWVLy
    9.30 +VRGh/nAIO92g1g3dBVnQe6n5Z5rrP19f0GQUf1Gx7JuG2ub2ssg4g+IkIsqHzokA
    9.31 +Y7/V55rTTn5lpJ+flVGlK3/4mAj9m8tHhUugOt+0lziQ+SS84P5c6p3XL4aVcNdK
    9.32 +/Bl+XW26CpJykATrDMC/YvBZnzTGTrJaQfY6dyhTkTxs6mCN7I/OCq8K78GaD1aa
    9.33 +w4LydEhofvJJUwTfsJudA5gEWs/PqgEIAL/+yWL8dtdhNayBhGg46gxbQ4vbZH6N
    9.34 +UuBVdN/kTg27cRBQ2xCEHbJHaLKYX9acEUVPMf50yxVKDR6foez1PI+Qhw0kztV3
    9.35 +AJpSi8Gh5thX9wSolEgYkN6JNOMUDGNQlxgejfWV1+jvSpyVv007lWoAYFNl2JS6
    9.36 +/0/guYOIRm8NURJGFLn/Lmgth8NmUdohPe0fEGXWRk3MlCo2vnNzGQ3UWPL3vHcY
    9.37 +uLBLLSevJLstUyM7URbHoOtGoeiICbMGLulrb/gLnxb0IGoJhIXhsqEzmEsvkWD7
    9.38 +2JJz1JvqdFSTlo+/36H2Yr6Jg+hc4XiR6TFqYAGwHcv+xPlJHNmv1qMAEQEAAQAH
    9.39 +/iVhPiU7AQpC31fUKYq/FfZM6HQ4xTKMYkfR63zRrs6moUcrbtMi3cNBeuVWnEYk
    9.40 +wYoMdq/TXlypO6+sJbMENgO/gEOzWF+gGSpyisoqss6JJcsu5Ru6SK5C6VySoSzO
    9.41 +2nP0MvBO+afcutqMnx+yy47FPvvNtuKSG7YaCxRMOmZRS0yCcg4dO8xVzw70YvjQ
    9.42 +o9p2O0RtTMrSFyEYNhLHj7wQyfGKBzwL+FqhtejMLAnTWbPFn6tYp2+wzZQE+XJj
    9.43 +inrx+PPt9yymE2XVtuywYENrLk9YHCBvXGem5YZaU52Ha4ysp1C1YGvlNmO9V0ia
    9.44 +alCz/4dtWbIsux/6HbHP+IkEAMxxIS2zWS03xyRzXhFyjCWXacvKujqF3j/elzek
    9.45 +nO+KTavDPVoVVJL2/WVf9yzJ2e1CSNjiZ9iH9cOMkx7SuCgYK+sYpZNhOMe7fiEl
    9.46 +f+Yp68SpI8R/4RfyEDaUHsH4DCUppGVmL5v3yuUlilqM/Z6jKW4oE5cvzUboU3AR
    9.47 +6gLZBADwahhXZnxlDbz2yLHzMkBdFIzbBMXExh4Z95coIOnfztqcpcWqHgw/WleS
    9.48 +D10as+TEcgoqa0gKwEPkZE/lYayje70O6+E2n5Y1PdDIVn6mo+7XLwimoy3GnX5y
    9.49 +296jJWyL2cTsf2/MdXmLwHhmwnSFuHNwmkNudASGMBLDdqw/2wP7BmNm+rD/33u6
    9.50 ++XwqPA2xYEQRPJ1V69JTE/ctV7LE12IwNjKmRIKmawwBrGmhYpPFeEoGPMQ/XI+c
    9.51 +Iv8IYAnpKPCHgTMIIFmLsdB9r8Udd6Rgs7pirAbgdH6ohGFN358A0Wz6f0vz+8q6
    9.52 +/fok9IzbFCbsO2s+BMPqOqJku02FVXFDjIkCPgQYAQoACQUCWs/PqgIbLgEpCRBa
    9.53 +ejY70RJSycBdIAQZAQoABgUCWs/PqgAKCRAvKlI7JjEc0HCZB/9zP9D1lclf6rAz
    9.54 +S7rnRpkj63J6qlUulOa1Dnc1UL8hTkCitHqvX/uPwDanwGihnZa9oRRKtR7ISJP7
    9.55 +puYwDyiWvXWDUhOkf9ShqZHm5BAFe482Yi6VIbwaELLQtAtFYSBWwE859M1X1Dwg
    9.56 +Z/RlEbviGBRFuMePI5/HCXWI7wYWXXy8sP+cTOvRpiNQp1hqytSiIunnRJ3wLR0Z
    9.57 +pAo2y3MyBpBTCvIVZ757R8jzPYeYvIUEFU+9ctb1k9VOzA0T7Okdk0KUvNtSDOZ7
    9.58 +EMK6IBgIns4NDX5tRJ9pFfn81R6/yOLZbLZvJYDIc1+RBKc/A/XbIjA4lKhpH+F6
    9.59 +vi0a3DBLlzYIAJyfJf/nNkKW5J3cKDxm8tn4/3zckCb2qhgXl6jeXCffhEk1S76J
    9.60 +cgQd71bnqYCTseJ2UgY15QB350F3wp8oxepy5Ir2JG9+SyhRt48rRKEBYaKDHYSy
    9.61 +qfym+u7vAsl7qn4QIiLrgZH7J2D09kV3yLn2+b2fnOOSNcKb9AZaAcW9dgzh3CFU
    9.62 +kYmw8A74o0m5KGFK4hBvyMZl1TTCweMt3gAj9GSsgGwUvRb8B0tGuPBxsiyKVWoB
    9.63 +bJIPwNtrknEkJC/LsYYP+JCZiKQWhs/lb9lPF0DeuvrVkaRZjoh7JkXilMPO6tX5
    9.64 +IZtITxR5/KyR3tmBE7n8QWXx0BFAKQLbAlQ=
    9.65 +=xz6V
    9.66 +-----END PGP PRIVATE KEY BLOCK-----
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/test/test_keys/priv/priv-key-import-test-other_1-0xC785F20A_priv.asc	Fri Apr 13 00:45:38 2018 +0200
    10.3 @@ -0,0 +1,63 @@
    10.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
    10.5 +
    10.6 +lQOYBFrPz6sBCADMI5LmOShV4onXlwzqg3EMAqGp2wspLtSoNfe/32/qXDX7V+X9
    10.7 +d8Q7IXyYT+EFT6VylJAk0uoFgmLjRyhAYTmCTNxRbt0v8agVqdIKMP8hN0MphzYe
    10.8 +stYJDOfzaNh/T5d+jIleFflJ5Sqpv5xC97b7JQhF186MFu1k+Xp2p9Z7i7PgD0kz
    10.9 +G7lBfoXw8Fn9mYciFCB0Wa4IJ4FrHXVdkix3Q+lK2ypQR/INRehrdgh86XxEOp6J
   10.10 +SOuKsmP0wLKcsgSZshdjnpyAA8sGzhahhDsgNRgU1Gazd73VEVBU1QfBR4bnTlCS
   10.11 +qq4JYsj1knJ1kGwmVpCn4HQBWoz6B85qlVzNABEBAAEAB/9WYz+JOer93W5j08Jd
   10.12 +g95VLM/pJ48jkHPh82SyyAV+ciNOCDaF+ycJtvQZKMSbEMd9I62UR8VNK45ZjAVW
   10.13 +qU5C++/IblggL+3nrQP72Bw/nDlJ27RlbVzyW4nVEit8RNxha2u+ayIhyV8ykqm4
   10.14 +FUhUI6nKlLcNxa4UqxbOG9zCTuwXVkhGQ2WwhVFDReHPsNhUm+FmQot+ev2A/Tsw
   10.15 +Sg+1FDjGGgaUstR0g/VvEbF8gslZ9VJXI73Ow2UkVItr96dEvJFqoWlWJsokwMcN
   10.16 +zUPb1bbQ6DlkbisQ+aNSftcMzBOk8r9Ofd423ytxegswEYacR/DdcKvenqst8soj
   10.17 +q72pBADPO8qBjjhPCD2ya4v9Vj9GT7tqlf7txaDkQc1hpZyIsLbzZhZ5RozCWBCn
   10.18 +KnHJC+HvqaK7mzf/z356Ac49GgTCN3qw5MthnSo/8bu4FidPapqELvJw8Z85n4Tu
   10.19 +VmszbqWjZAQfMbIAeYPoXODW/Y0RGgwrlrCggNbVdvFJQL5NdwQA/C1beN2V3D14
   10.20 +tcGeudSv22t/cRTL+aVcsFxxeLSIXlnx1VNE4QxzToHKQT6WeRf4fHsACosO+UIy
   10.21 +mp/NHVEsNHEibVoUdBBt1qqPqqK7VXs3Hy5jY1FZENEYVWbwSSXfTgFk2S2/3d4r
   10.22 +eDFon9yLr0A3cXEYs2ebBD/Hc1NlqNsD/RH752mcHs1QFdMAd4VaD2AJDufHseIQ
   10.23 +Cfkwl16UQC7GVyI/aje+y1UBn+0o7ZFpcewCQqGbrOVClQUJQK4rxumiLmVFJ/VJ
   10.24 +JxfdTcQ6+++WT1NXcrQC7qvnOy1nUsNBxBJ0JuTzgcqMBkW35AVmZemtc0L6/9U/
   10.25 +zbuOPerYOr2ePU20RlByaXZhdGVLZXkgSW1wb3J0IFRlc3QgMSA8cHJpdi1rZXkt
   10.26 +aW1wb3J0LXRlc3Qtb3RoZXJfMUBkYXJ0aG1hbWEuY29vbD6JATgEEwEKACIFAlrP
   10.27 +z6sCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEF9FvqnHhfIKZpEIAMQK
   10.28 +sAvU6LBjg5wodKwJKhBjRVzh9153xkWBMTFwkIVocyvnRkpVHHTtVd2cfyc9F5DT
   10.29 +YwO7iQODAwxAYJgHLq7UGzX4nh/3YjCUkKfX0Fy69JLsbTm62TuYBrUQJEDiy2lK
   10.30 +ritEa2enT5UFRT2Somgs5AWhhL6ll0/izf+8ur1a3Z4xpe1LwRRp0iTdHicdnM86
   10.31 +DT4COVNUIWWUXEPH/MFKmZUxbzrHuj/36Y4W84u3Yamut9NdyhAxSX33LMA5jV2t
   10.32 +PgQO+ksDQwRaS7mpSxntRbodHrCFjP+i77hgbD3I5nvCrUc9yqddYfRrTSMua7fW
   10.33 +BAX/6swDxgR1dzFbmNmdA5gEWs/PqwEIALj29aoQs7pvpHGmB0cmUMlu9zGFMH/J
   10.34 +TPHCg+KuIjU9VlioXXKjYXAEEpgcxmc0eAZ+dZ4dEDMdyU4xCdRos9Cmue6To7ur
   10.35 +UHq0bzuV9e53FGOQThz9xMJ9/2A6ZWndsVOgEsJb55VSbR4O4dMuptlZhoCoGfpU
   10.36 +WyIncMZ7PZPYFQZyWdBKTlKtnIkhNiMWiblSd+ccifFwgBc6SqjAFpMWkqmd5EOM
   10.37 +hhuulABa5mj6YSe37gIxjy1dzbk2XVN3ix7WwMKXPhNk88Tbqf1lZf/L2VaTfMT/
   10.38 +RpQ4ZfsYHrkZwdBkM/8pOoIKnBeVK9QvMrRDVJ+O5t26fU4Fb7YjyAUAEQEAAQAH
   10.39 ++QFOVxo6D3bRyny18ie1tMzTUIIEQX0pf/ZWDAXZ+mpbUkSCfdRtJGc81B/IVjtM
   10.40 +0ssi8fQpmt9thqobbQkXqytePgJZ/wY4dbNEGmP2kVu7cgSo9HA+d3jzGE5G40ft
   10.41 +1Y50WyWNrhMvF4+mhcAuvGVc/Tbj2PkcRt91HVX9cUgds6J+2G5ZxckXFup6mLc+
   10.42 +r+e1+44Ji8Q1hz7DsfKFsE65pCy6oSgLK3qrp28vNnIVoPDYZBRW8d4ed/H/ZH9t
   10.43 +YetvnBk1GQmv2LxUB1aXujhpVUeDsjlem2h475/Rqrhf8uLA1LgmpV/SARypOgoA
   10.44 +T2eP70v7amTQhxLkeTjNKgEEAMIlIIbQyVsdyMvMBDVVNlOHegwLj7MsBPeNXLfC
   10.45 +ameV+n1OtctDeopwVsYcUM8orra8L7ks4sm3sqRowUa2wiaM/vmlea5xx2CrooR1
   10.46 +JUhLCrJdcEw6TX4YPesBWIq4V+kjPFoqvlGPtqar6iy0CJkYWFQ7KmFWDsd3GZdr
   10.47 +1N4BBADz5RCV5c4MUMMQ366q3fkF+7FF0CdLW7s4trV8pqPH7lbq97aCkYYB182U
   10.48 +uPIXo9VDiVxEeOhP3cN3nOQCqGRufVuP5LeiSHk+XCd9bRtK2sInMiHQG5d9etHn
   10.49 +Zx+tbYI4jB6Zh1GWHxEyC1wNhXjxXTePuICHD/F6IvZK7h9yBQP/a5CDVMwwox/X
   10.50 +S1Btr2lOy8/B6fjVQL9kHt78gE1m+KEwQNuE26k+kXygfu3ZC02A/QUclIevDyQA
   10.51 +iTVW/dI/yQi5IWI+icGTB3FhhAxZ4WHOyByz9JDdPkqhaze9LZileVjXW+OWc6KZ
   10.52 +9Wie5UdqIaSzCdjsp87YMn84qEkTfcY9OYkCPgQYAQoACQUCWs/PqwIbLgEpCRBf
   10.53 +Rb6px4XyCsBdIAQZAQoABgUCWs/PqwAKCRDnGVof+W6UqtjPB/wOtJ/kiTXE9+I3
   10.54 +krk98BFUKA4m1T269k02vYkqH9YXZx2LtdicJFNt2SYfazXxoako8EseTQl+ke2Y
   10.55 +QZVbsbM+/gcui69JfzSwpnP2TXgtldPl9lU9uUCkb7cuq2VHOzpgv1FqwC5S2jDi
   10.56 +RGCmCwEJ78/YCC59Ifvp5f6NwTKg8ggCO6e5kFN1qYEkoY3GViR6Cntyj0HhmrTl
   10.57 +si5EkLwV8cqyZiZuPQR2g7X/zeweItV9sV/XJVpOeowoOA5rVs8ov6jorrAGHRa6
   10.58 +cyQ8hcU71u2rndEeqLE6zJQwXJAsT3RrfgYP6g2O27aYz700F1BepDzPWq/rOh1Q
   10.59 +L1rtVD/0SxsH/jilplZgJkBgcNldsEavYivG1ANB3pFozvyg7AIvNNriaSutIEeJ
   10.60 +U3CeGfAKW0mD3c1UTK+VvyyfhK99CHTdoaybISMokBcL3wq8GNqHKD9Kml8phB7e
   10.61 +fHUk09GpP5HSWET0TsvEgoqC7s2oLl4tr0QAhF8i8QKms6luMrSaWtp9epmWcP5P
   10.62 +5KXhrYldmH2hM7msu1a1d+5kHoQMpuRs7sUAZtcAvTixSZRsyvwaBeKNtSR+V5b+
   10.63 +j+PhQ3ySVzCuSYjwqOXCIlMatYE1fJs8tXZ/+IpGPEu0SZgrotrvARKV0RPWpjI3
   10.64 +JWKHaCAC8e+WJtt/CpvmTvw/xn6Lntpa66s=
   10.65 +=0Ir2
   10.66 +-----END PGP PRIVATE KEY BLOCK-----
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/test/test_keys/priv/priv-key-import-test-other_2-0xF26F5504_priv.asc	Fri Apr 13 00:45:38 2018 +0200
    11.3 @@ -0,0 +1,63 @@
    11.4 +-----BEGIN PGP PRIVATE KEY BLOCK-----
    11.5 +
    11.6 +lQOYBFrPz6wBCACt10T2hoQS6x34/VvM+FgREyBvZahsfL66za/xNtP80w7ALK6e
    11.7 +TlNjR46c/vh1CW/KSRL0AGOU+BvvxymS0ob2DmiDD4/N2F83oVGMfNkPaQOQayuW
    11.8 +xOLsg1x7PzaSlZbAfKRPyafGu5KLrq5HYHFnQm1r1QDgxTbH74vRYQjh10oisVqX
    11.9 +MEl4LkXraXX4WcKaSLsqpgV15HsEOKbz1j1LPmPFvICqJcX0tY2KDjIBpyNAD4Aj
   11.10 +fKBtM1mj9wiR4euwEvxl97xpocCLwHwt8iZ1FdlzUtPG3rPj94LlCpc3zi+AdM5g
   11.11 +nT93mo30WZPB/SpUkWzBGGhbk+UMo7YC1qbVABEBAAEAB/4g/Wo78nkb8fyFJOeH
   11.12 +9VUZIG0WVs9ojx/O6XvLJeGC6DazZ4dXyXtvqsO4rXZPF5RcahOrtGsxeQgsL7qG
   11.13 +/2bXSRKyVICwyq//KaEFLSgwEXi4rm3eNczun1sslGlx1et+6ehwr88kGrKLyYGP
   11.14 +UBEVTHjhbtG01hg4RxBckrKR0O4yZ5ylQ3DHmL8nJHfqzHrRJfRlGgctTyBVl3rH
   11.15 +OdhJcYfJL8Ck1zAkGcjEfCGnxdTVaYBtMKuLibGwDnJO0zeoTbZwxtyA6EJpGWVq
   11.16 +MVp/fqBtmAauuXqnpPd6ZJSOSBWXPWKE9OPaB95rM4yM8jCeQVPC4vd8xL1R9qdj
   11.17 +Jzk9BADHiE3gUuTjLuDDwEuzpOR3Qu1laILf6TcTdfSeoKVIuc9J1aI6g51OWWzx
   11.18 +72JHG5EvNth97yby+8vM5y+XEyOzMiKSPt+KKYP7P89QdBn/w/NiSTmyUQS+Lgz0
   11.19 +3C5YbmVyuDLalSwcMgMKD4qxcR8yon7BAZt3KGN2Jm40EhOz0wQA3wmrERtkkpTv
   11.20 +61qHRSaZGOsxpEi/Cs3mp73b9Bjin6d7odEneMD0rSOR805UGrzDoFuqnDfkx/id
   11.21 +Oj4vsUdM2yeP5xtF8rvZnINLtUZlGCm2LQ71njk6nP382etiGjZYf95IYSDlr9cA
   11.22 +TDvgxsPAEX+aS/zvpc6iCHXH+WmYmbcD+QEWqTKk35TGy9OnTbEQYxWI4pHDzCRl
   11.23 +tLbxlkHG8hZVGPHqWnwd7etxh+kTYkFHeL6OfrIw4hEhmjy8E72CyzJdrMztqtiY
   11.24 +4uAVVpwTwNGXkhusXZSAVlHTirjiSy6QmzKypRujKn9VaNPOTy0kPIf+pBDkxUoG
   11.25 +TJzJi7ZkWbs+R/20RlByaXZhdGVLZXkgSW1wb3J0IFRlc3QgMiA8cHJpdi1rZXkt
   11.26 +aW1wb3J0LXRlc3Qtb3RoZXJfMkBkYXJ0aG1hbWEuY29vbD6JATgEEwEKACIFAlrP
   11.27 +z6wCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJECbYH63yb1UExsIH/2Wz
   11.28 +jCqactsKsDUn8jilP/h2/kb+FeEd63dFvxReBtrA2XgkELfpN+91t7WBgwFue6US
   11.29 +NA9sNcS64ivIc/0MthoJHBQ7ulbH6wNmK6/dhAgZO7mMfPQp5AtTYfN2Xb5klKvW
   11.30 +QH+PTA3dWSXTi1gGc5lXaPHkLlj+w3jOM2iTZVlHjiqF+9O1ITDSAZ/KB971/may
   11.31 +cfUto4JYfay4gN/s0voSMW5LU1xZmLxMMLQJ5UlV49ckYyKMbqTW5veQCR+QrlRd
   11.32 +Mird6DYePAWhgya4S5hpXiHJUAJwGqQnLfbkt/0hABo9Crw8UkdbZe3Qr8hUnRNP
   11.33 +mRTOwb2Yzqam/o3azJqdA5gEWs/PrAEIANll4WtrCxU5nLryLftuUz9BKFrvD6U4
   11.34 +RAu8DPKYX8t4Z5rRkXYYtBkhubEq8E06dUzlCn2wAUUE/A/8QTrKflNpMXIo/evw
   11.35 +PWYBbpIoJ1KpDC3WF6VLBSmf6D1U3q7eT6e3e8GPb07FwG7Ygm5EspmQS1j658KA
   11.36 +sV8/2CsI8UtMOffK46dUthLyoaXk7nilwwQYZ4qPJjLbfpzZbv/vG4WbHpqoVNN6
   11.37 +DZ92TCz3DRAfS8VD9QJCUqUCz5tEAilnn619e74euRGnz0HyAzZJuvs3yy2/E6mA
   11.38 +PfdZKeNwtJgVqRjQrG57Ma6ux7a+dfEqdPUeqerZgi9Sp+faAhb5zwcAEQEAAQAH
   11.39 ++wWaJ1ZwzOQloWvR3NcmBIAp9NkZtadWIq7DZaQEwtyH7vI25KQ3RmuACnx4dPZ7
   11.40 +LgBRcKqaKVY20YC0npZeFyZIHNg/xSyveq2RFjaEUWBtxHIT78pjJgVovlUs8DYa
   11.41 +ZXwWxtokkO47O1ZqlDs04FNZEWVVcI57FCxhBU2KmUk4PUnwcXBdk/NXR7iV7bsY
   11.42 +Lo+JD9QlDEgm3WxCXEj3GTbnAvv18w+pH2iWkrnUO9FJKOJAPWqTLDjomywYQxWI
   11.43 +QaNgEWQA08/yCfaWaRbxcvzClHed8Mp7m56XE6tH3edjsAJMCx4lwjNKxMmR3e0T
   11.44 +3dlKnYQHm1j4q2gGkD0FaTEEANtOU+aqIBNSzYgxtTOXN0q7RAD46Lb2nQQ6kkBG
   11.45 +8rdERCpznrSPgSNXY8Ye31NFyRmpGD1IUntGLDoqJE7DIgYBLSS5UC9jTeYHVU2C
   11.46 +Pgw1tPy/bOImMxhbPeLyBA0dH3wNlQAWkMDOog6Xq5iFdHKy1mj9X4pJFIkLCNYz
   11.47 +JI13BAD9xdOMd456I2w1SjNE/s0vsYFNgEMOnu2fOalAJ+mX3pLfMAQw4powopIc
   11.48 +FmKpapbyaGYT0P1Jhq4mLJE8PDTMldkhHrHQu4lLfJh2vgtW7BQxAaY8Qv6cZXS/
   11.49 +hj/IXEb8T94OyyNotQ4ZwV8WRewVvR8G2VkEeBBV4hoRjVTu8QQAsdk390O5p4Gn
   11.50 +JC3BLn5XEzj7KNeSGaDiPFyjWD1U3k15w/Gk7+DtkPGzRCwJC4CcLQ3vZqZnD3Sb
   11.51 +cKk6kbUehsvikHtI4Q/PKpi6xe83TGy6ne+utIPz0K9+k3MCJVraEM68YDbbO0CT
   11.52 +kYekwRNbVAI8VAXArOn19YRpNyzFkDQowYkCPgQYAQoACQUCWs/PrAIbLgEpCRAm
   11.53 +2B+t8m9VBMBdIAQZAQoABgUCWs/PrAAKCRDVZ/azXGJIUMezCAChRI+nihF+aE+y
   11.54 +Exmyg2rzBwv7ued/vjZEP34wHL67oRfuh8WMvxFahkmlPJoW/LSRk+lf5EkKYsBm
   11.55 +aRtUhJH1nGPPARw7VmZ9TmmdWkklIyeQuJMUXrUoTm82to/2n7tZxnOoDSzGojvl
   11.56 +7hXZAhyENIcJlsbIALOSfvWybX1Q2PR8+Zpmy+EYrELIdeBxzNoqWzAyM7T9ncmB
   11.57 +BXBxgorFYfOBG/N2uDn1jpajv/i3FTKAD1fIPhYE7KA8EM3YUWtPaAohAE8GkXRu
   11.58 +I9yADTh5myvpXXP0Nr1wlQVUL4AB5Z1EfLufQ/R5mS5y5W/WEZwhqcj9vBJAGalA
   11.59 +Rd/Effn+PS8IAIDr6M0YwLbK4akDntQLOceDi5RW9oGLmAVZF+ncuF1J4eEuRpYS
   11.60 +HZ7SfnF5KhZZXA2U453ZZJK4it9qa883+a98O4KD6xiFAtkxKEd4KxgRPKx9u6q0
   11.61 +3evfai+Jzm4eBtbGGA3hPiTHYRgPmJjYsEcKYFHkIFG5z+lzNVWLH892dtn7DQ7P
   11.62 +DF3xDMe7peNS4g2M67iHYotwklnCafCozIFbLSDwAiWH07UUbOuFnb1kbjxu/5WH
   11.63 +/OL350YxV2RIg0UlWZqnoFbQFXZGk1B26TyL2fwZY4ImX/5VZNBLWzPTgtD3/UPs
   11.64 +SxT9fggbiA0f1dMrzZoAZVQmaMqaeGTouYM=
   11.65 +=UvOa
   11.66 +-----END PGP PRIVATE KEY BLOCK-----
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/test/test_keys/pub/priv-key-import-test-main_0-0x3276D2E5_pub.asc	Fri Apr 13 00:45:38 2018 +0200
    12.3 @@ -0,0 +1,36 @@
    12.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    12.5 +
    12.6 +mQENBFrPrZIBCAD7Xnh/WJda9mBwu9lAkJ9ON1KCo9JFvjw89TKA3nOT55NKMUjE
    12.7 +4D5pZm0DhipUBSB6ylVC+FkxdTydeqHeV4/ktBITi/hc5qiMPt0fVS9jlX2rUl2z
    12.8 +vvXmAX5erHx6bXkptbZdOtCOr1hRzU3An/KODdyAcIRClBYkeR1sB4/dLvfqLAMQ
    12.9 +UpoimWQrzS9+AOtU5tMGFjmhjF3T+cRXdL5zgPaIGzt9oV3dHZYgGGSgDxXNFK1D
   12.10 +4jUv2AsyZYL4qLnWvZlbBHvaTbbsP+K5xXI6VpzPWEIHT4v4j0+agGrzLsemQsqT
   12.11 +lsYopII8AtQIc7qWL+DvqUbnBCiamUBYPaKlABEBAAG0QVByaXZhdGVLZXkgSW1w
   12.12 +b3J0IFRlc3QgPHByaXYta2V5LWltcG9ydC10ZXN0LW1haW5AZGFydGhtYW1hLmNv
   12.13 +b2w+iQE4BBMBCgAiBQJaz62SAhsvBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK
   12.14 +CRDv+1QMMnbS5UI+B/0VACN9je7RpO+mJpK77Rt6h9Y1qzBOJxGxgErdzq1WG1/i
   12.15 +gKMlSbAlJwb/tT7XD44c/dN+OD8+JOEzmQEWbQ6Jvu/7SIvqt2iGhSkxGQFLdR9Y
   12.16 +Mt7vGmCB/qxza4jwTSK8vfBymb/2rgYLNT/MZTl7trkQg9n2f3DGle34R+fepY8H
   12.17 +U/xXTRK+gevyjbRIP1/QuL75tKoDldhRV6YNcinT0gpyN2Ld6KoCXnGB73HJUqis
   12.18 +L8S12AHhr4o1bJVW1pA4HFobTV592Z6gDopc4WuEFX1UqvX5YWKMu1nmEWLBuYS4
   12.19 +I9HejC3KocBEmJFicG/FEF+D22zM1AiUnoZfKOgwuQENBFrPrZIBCADDNpQPiXKi
   12.20 +YYBxe/peYRgYT2CH4r+j14mU9Sm2ZDQTqp9oig3T1u02m1XoBFMoV9NpcN6L3r7/
   12.21 +Xs9xXTQusumcPy5CO8snL+DLpeS9yuvquzsWKAUc4MxGoo/Kubuot7GDEXH7TXvb
   12.22 +rWSSFGnsWITrvEXvLC5wb4THMYsFCS7uZM2TNE5UcDkY69xOa53ivjRrR/YHTOOw
   12.23 +rh2EaPRUasfqBse5GRXbamzi6Lrqqy+4Q/QJ/OoWyCKCXcrpw8anUc7AWomJ0U0N
   12.24 +QV6YVykjE78QgcO4jcG54/ow8N485cffCdquOTqv5gaGVZour6E1+SZvnPPkZtJi
   12.25 +vJ2P51GeHo3hABEBAAGJAj4EGAEKAAkFAlrPrZICGy4BKQkQ7/tUDDJ20uXAXSAE
   12.26 +GQEKAAYFAlrPrZIACgkQivz/NoHEiTKVJggAhe69Q1ezvnSg0k06HKrLApTWFzcQ
   12.27 +Ee8msjLQ5Y2Ucyuo5ssBZ/NZ6Plnfv2E+Ft4nWY+8hkyDCWvmWRcAz2onEHwG6lN
   12.28 +LTEcXG6rKCtzOyIt2A7OWFNwckLPN71JGFMIwliNKTgSBBWAqDiBcjw3QKj70slZ
   12.29 +OOrKa0+YqChH2wThOHtMFoiZYXM3OSq0whAcninita0VOXopNhNxcYvJV80JWbLl
   12.30 +TXzR5B+fMwQFndQNy04uA0HLi1ubTSipDHIxmiBK0ZyLsnwHvfmOlPG4zMQAubxr
   12.31 +da2GtPr26WQ1AW2x2v5zTbcqBYl/BaMEItYVRO6VcpTRYuHmiriAhGffqTknB/9j
   12.32 +goPVD/YUiVgrVjNWN1aY0DZig0jrk6BSNXPW5QAMcfr3LBZ20cgQ4ved9IOh66wn
   12.33 +xvPi2LMXB8SWyeSO0LMql75Keh61GLqh8FyZP7yxUAhodyVdic5R/ALAU5S9Eve1
   12.34 +Fw72YPOmAAYrjcDlKy2P1yxAZnyU9yDsmPXMSxCb75mGsAcCqsjZzyBnmXKU3TES
   12.35 +6Yl3JF11oV9romIPZOk4sqHDXozS9BOdxu0IyXmvUJorlpNnP5HIQELfrhRiYx+Q
   12.36 +wBpSmNAyUseRizvdXmzdrvDrIEgyV4cyFIRFbRZKxTJ6ecGmC5P5+g7wk4Ovdx8f
   12.37 +otrONgZ5tXgu7cF/HLZw
   12.38 +=oIC5
   12.39 +-----END PGP PUBLIC KEY BLOCK-----
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/test/test_keys/pub/priv-key-import-test-main_1-0x80C8CD87_pub.asc	Fri Apr 13 00:45:38 2018 +0200
    13.3 @@ -0,0 +1,36 @@
    13.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    13.5 +
    13.6 +mQENBFrPrZMBCADHliMZZczNc2nXrm+SwDpVekZ7Uz/m2nRRmhH7OCnvIIw4zda3
    13.7 +QDvmJbGKRnlOkAGn7+WoZcmPqu5lfJHzC02sfhqCrGaqdb7RDkYGhulTtgwxf/GV
    13.8 +QGEgroQvDKLLRVAcE/rhIbz9stlWPMLwNlkvfXwGi+q5h2AxIA4uDnx9YcrK0NTz
    13.9 +5F/RCXm/yw/DxTlCK66RdWk1ysmvWGeEkwB8/0lVcgNpifSMc6LhChotGnwxLJe1
   13.10 +fhOTcsep8TdaJ2LHzrSO2rzx8rzMkHCpWrw71vWs1XhO7wTgvptOMDNuXsp4Pzyb
   13.11 +VFsEviWhUJoC5Zf1QF+jwyqm+WWaqr5e38hxABEBAAG0QVByaXZhdGVLZXkgSW1w
   13.12 +b3J0IFRlc3QgPHByaXYta2V5LWltcG9ydC10ZXN0LW1haW5AZGFydGhtYW1hLmNv
   13.13 +b2w+iQE4BBMBCgAiBQJaz62TAhsvBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK
   13.14 +CRCNcYXxgMjNhzRRB/sGrf/k8xF/gf/RalVtFjLzOjZ8OeR1BRDkSQuKprOTmhyh
   13.15 +kOjJbCoUg4yem7J7bAbitTCG0UYHA8d/KsawOfxFGrnK/NOv0hW64AVhqiceHK9Q
   13.16 +pVUK56uC/kgP5wNGIp95gSAQP8YImyMsiln6xVnQKMTPRvZrelJIUhHek1wc0LkG
   13.17 +ZM6fqCy3iK6Dp3kU9o7sT67Rx4mvBKgExlIxHc3t0XKWE85qcWnWwCFeGyTriIct
   13.18 ++GjXQjskQsT5HGg3PjRHKlhe0/K1yNDKKqtWGOyFzicRKmIZXLWGyzLw1hMaUXTu
   13.19 +uiiCM1e3l0I1EcBhAgraCNCvLL4IHMbgBLjBLSl4uQENBFrPrZMBCADmOdxDjkOD
   13.20 +prEVGeyzezf2BALQB5GVu/dMt33gatXLV5oj6Vwcwg8i71UaoMzxdWyHLOyED5yz
   13.21 +Yof0FvsJYLcTkt5uq/3hbJaF34FND5K+4wlp88mV5k3HDllyErNaVq/PoO09icJd
   13.22 +IHNOO6sSoOkYKD1TuWR5oMotuUDFrd6HZD7eYNaLQ0cvT0F66cTPa8EAAggDoWc4
   13.23 +nJAqmIzFbICeGcNG2tgJurCgIe63pGTIwwaRT//p3HWASMOIVxa80kucUCqOCCuP
   13.24 +3wX6DOCXs9F2eoi4zGe6p3nnuWGvTiH75beB6TmfflGCBvI7uDLkZkxpKD+bXNuF
   13.25 +aGRnl4nbB/3NABEBAAGJAj4EGAEKAAkFAlrPrZMCGy4BKQkQjXGF8YDIzYfAXSAE
   13.26 +GQEKAAYFAlrPrZMACgkQ/Sx6poPtYcXZxwgApH4oHptMikZ7MH/5MoyNj27PhmD4
   13.27 +7XjOi6lhgRuc2g0/gHcsGpf0aSbLRcRIPiA9IzloDFYinz5ugbzYwRutPKHOKoXu
   13.28 +Os7Ty0lguhyOKadV07yh3mWrRfmIU05MkVz9g7g6C9131+zdbfv2b1hyqvW6kGGo
   13.29 +JEf6e+22JH8AwPXP3jv6AyiZprUY+Ma0U8BGDOd5M80sdT4Qs4Rai424YpSg0ef3
   13.30 +Nh0mN/gBcoVGkoUUu2MOzqgsJm+IoEnRpQOHvKguk1XTwUA69+CRMbJ5EZ4hKxvm
   13.31 +1f/xSutEOUprOykV40ngDmiwgN/gz16mysIRGgLfupUlJbCU17x60Z73APm6B/9n
   13.32 +y7STBTvh1MfaXS16mIJzh+aoxtUqaQzay07GmPazu/cmDbgwNy1HdkFPwoOaOWhp
   13.33 +OWclnPTiTiOJPvLYBL1hS0G1E+RpX22whfTPXMHZNyqYO8HXgtQX/j6XLpWXiTof
   13.34 +mNFUIS8MGCERTO0jLdQqLg4jium9Oj+sRbVzEPKsPWcmD5iDxRiyDLbQqq1m6jDv
   13.35 +PbSfUqWTsZ7vvCNvi6G0z9bBZRfuEvejOyKiDNBdPS2KGyvykdEjmo+7/xgFBGur
   13.36 +ZBLw2cq0k22V9Ml3F9/eA99NE7yXMKhxAVVAx0hDNyY3Q1bgfVBn4ZC61HxK5QGZ
   13.37 +GVtdbOvxMS2Y+xq/wD6s
   13.38 +=ooYn
   13.39 +-----END PGP PUBLIC KEY BLOCK-----
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/test/test_keys/pub/priv-key-import-test-main_2-0x0B74809C_pub.asc	Fri Apr 13 00:45:38 2018 +0200
    14.3 @@ -0,0 +1,36 @@
    14.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    14.5 +
    14.6 +mQENBFrPrZUBCACnMasfpzRhGDKYjQIN1si1wloLnlfyPoM1QUk+On7Erc3naCYH
    14.7 +DgUUc22oqbBBC1pn5yZpkELg51X3kIJQ+91+iZEHFoqkq+EmjLpmqMqOR//TlAI5
    14.8 +vnxTmwoDJL3PwdXqps1u1pP/ssb9VsZTECA8D3yPBoID1Db2ZhpoMM+u0dq9Rxty
    14.9 +geL8vkcucTMTZhIB9lg0S3R0WTqNPxtWoZiCPjwwvgTbJtI33HrePJKrTqgCCb3K
   14.10 +4CmJsItr14kPArX3cc2ohJvI/6TdpD2+t4ns7RZgB07e94K2LmsZd86nArpZRPiT
   14.11 +360VPibE5DFf7oNCLervmaghjCmYSv6VqauXABEBAAG0QVByaXZhdGVLZXkgSW1w
   14.12 +b3J0IFRlc3QgPHByaXYta2V5LWltcG9ydC10ZXN0LW1haW5AZGFydGhtYW1hLmNv
   14.13 +b2w+iQE4BBMBCgAiBQJaz62VAhsvBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK
   14.14 +CRDC5ktSC3SAnEjvCACheUkZAlDcXQhwhZ3KuwIcDhAz/w0xK1svzwSdMAH6sRoO
   14.15 +VnwGkKunHiw87BMi2mlbcvFS/YDReWx43vjikW9HDcU1RdwVuZD5Hid/cpogXn/a
   14.16 +IRTgtkwdDozDzUgegpraVCP5wpJyoUctmbTKFiil3y4mqv7wVqR8ew0xxGKp8JxN
   14.17 +skI3e17KrSCMtHDvKruT78veZW6SiWOX7UK7FIAKISamkJjOB+HbBMV079W/cG4d
   14.18 +Xtv0Fksy5f+6a8xLLCdSo1tCY9/c9j/xe8rHXpqIksE3uVT/ASOxbW60FxdWMv0g
   14.19 +s0E5BQgxdckBAmaEckgU8047ksVh3ofZ9ec2U/JduQENBFrPrZUBCADS0VZ4WGL8
   14.20 +1g0fC1Vq0589ZHxxWvDg3aE8/PSN0FeOOsBnI5Ac/aM2zHaJWStwzacVkC6e5xyJ
   14.21 +SdClvYM58U41NU39IW8e7JEEpH0oaLsq6qPtSAodore4LKFMUmOYsW+c0HdfjsxE
   14.22 +/othiLJueNA8PqoCB97zxnXT2M+nnlzaQea8NS6dQdkt5U2zVE9HiyKBqu/AKx+H
   14.23 +P8a9hO5g8ALR0OdCA/+0hlz0mF3G+Hgw8D0War4X3pWBiLSm7Fm2biY+jCJrUKF2
   14.24 +gJVCoumfCCRQWQsGDyVWJtK6mkFZ7vus6MJfbUEqatmbvFjqrnP8qGohHrMsk6VZ
   14.25 +HIBjSCXA/jTVABEBAAGJAj4EGAEKAAkFAlrPrZUCGy4BKQkQwuZLUgt0gJzAXSAE
   14.26 +GQEKAAYFAlrPrZUACgkQ6zRDtFIo8nzUcggAx+qKj0jB5DtV07zjFBC220dMLB7N
   14.27 +flQu9gjrxOLQY8d+WaU8IawmAiautdlSXslvYpjgvaues0neQxPOcuQklkOxtAMC
   14.28 +KjQx5wvJwmB4LdDHLa2Obxve7saf+tGW6057Vx2n0Xc6XTefd830yo4uzgLj85+b
   14.29 +JV2MsglR5gMMfXu5mr5vuaaM6ZWEFWRE80Vv0CFhDLGYaz9a4gTpvte9E+bQpD5i
   14.30 +jvv8xR84LQNstlux2un7SRcDo8DwkmFfcnLJRsG4slcOOHOXovHB4KZ+sEJ6ERW3
   14.31 +IMGUAKIlS99vntTIcE6G/xWdNow+YQbxA3Bs+JK8X2EBVI/5R7DBVp8mjkN1CACP
   14.32 +9hLUib68hgEWZ0vUZLaxUScRZaq1cdwMOEZi7h2LTtqtnEsWWYN1E3G3Pe1zPd9q
   14.33 +cEUZrCo1ut/lXIVvKKoOj+rGTK3LMkQzruv2cXxLkSoVvJ97Zj1Vyaks/wWqkhNs
   14.34 +Dmrpsrhxw1WG4fCeWrnEzyQZJyYI855TByfSxWrCrWkhQeY09+S5NZj5cgMaRBbd
   14.35 +y9JLuYFKYkVk8az0IlOj14mjAbKUdvkEt1y8H+TQAFiKr462fMLVN393glNnlMif
   14.36 +y7kYXcxihs+CPwJreb+4zuO1Bc0ha8yQxB8xbjb+POkRZ/ATj/b9I7B3lO713HGX
   14.37 +HUDAF9TeXttRXbSYjFHr
   14.38 +=/QdH
   14.39 +-----END PGP PUBLIC KEY BLOCK-----
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/test/test_keys/pub/priv-key-import-test-other_0-0xD11252C9_pub.asc	Fri Apr 13 00:45:38 2018 +0200
    15.3 @@ -0,0 +1,36 @@
    15.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    15.5 +
    15.6 +mQENBFrPz6oBCADE+Zyw50I47+xY/TKJNH9+cpgaUciU/mhMxMdZug+cvAiNBoOF
    15.7 +tWqPfB2MjcnmhSCM0oGYDkRI7au9u1TVG8fAZ7kOoT3vLosKxQtZdCYWSWHCsMIe
    15.8 +iSZoIDPHXL3cM9410HobVB4UBmot5g0J8hXkkTa+nzArc+kjX+pEgtrI2uWoelVF
    15.9 +msAOROBU44gXudwudcUaql8ZzW7nPd9rmAFmOXnhNvW2TiQe/KLTR3L/Gggt1Ytd
   15.10 +nUejzGrioWf4hZX9zdLqMm1a8H+KWYJdjjrIBLRrH1FUXXPQxSuHmSEtlnmg9L9X
   15.11 +6yaaNG+XhxCAoNaSosqxAWqJERzt5lyIRo0pABEBAAG0RlByaXZhdGVLZXkgSW1w
   15.12 +b3J0IFRlc3QgMCA8cHJpdi1rZXktaW1wb3J0LXRlc3Qtb3RoZXJfMEBkYXJ0aG1h
   15.13 +bWEuY29vbD6JATgEEwEKACIFAlrPz6oCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4B
   15.14 +AheAAAoJEFp6NjvRElLJxt4H/3W4wp3PQbVw1vo0FX7/IY4KwSZLY7UOZtEmE1EI
   15.15 +vBunyM7lrEBEmT4crNOO6Cs8NA76o5gCGOUVPBXftbqqO284nJEax4kaNg8qYRmb
   15.16 +uYwwmQ3QR3Et/diYPa6ZUS+uWVLyVRGh/nAIO92g1g3dBVnQe6n5Z5rrP19f0GQU
   15.17 +f1Gx7JuG2ub2ssg4g+IkIsqHzokAY7/V55rTTn5lpJ+flVGlK3/4mAj9m8tHhUug
   15.18 +Ot+0lziQ+SS84P5c6p3XL4aVcNdK/Bl+XW26CpJykATrDMC/YvBZnzTGTrJaQfY6
   15.19 +dyhTkTxs6mCN7I/OCq8K78GaD1aaw4LydEhofvJJUwTfsJu5AQ0EWs/PqgEIAL/+
   15.20 +yWL8dtdhNayBhGg46gxbQ4vbZH6NUuBVdN/kTg27cRBQ2xCEHbJHaLKYX9acEUVP
   15.21 +Mf50yxVKDR6foez1PI+Qhw0kztV3AJpSi8Gh5thX9wSolEgYkN6JNOMUDGNQlxge
   15.22 +jfWV1+jvSpyVv007lWoAYFNl2JS6/0/guYOIRm8NURJGFLn/Lmgth8NmUdohPe0f
   15.23 +EGXWRk3MlCo2vnNzGQ3UWPL3vHcYuLBLLSevJLstUyM7URbHoOtGoeiICbMGLulr
   15.24 +b/gLnxb0IGoJhIXhsqEzmEsvkWD72JJz1JvqdFSTlo+/36H2Yr6Jg+hc4XiR6TFq
   15.25 +YAGwHcv+xPlJHNmv1qMAEQEAAYkCPgQYAQoACQUCWs/PqgIbLgEpCRBaejY70RJS
   15.26 +ycBdIAQZAQoABgUCWs/PqgAKCRAvKlI7JjEc0HCZB/9zP9D1lclf6rAzS7rnRpkj
   15.27 +63J6qlUulOa1Dnc1UL8hTkCitHqvX/uPwDanwGihnZa9oRRKtR7ISJP7puYwDyiW
   15.28 +vXWDUhOkf9ShqZHm5BAFe482Yi6VIbwaELLQtAtFYSBWwE859M1X1DwgZ/RlEbvi
   15.29 +GBRFuMePI5/HCXWI7wYWXXy8sP+cTOvRpiNQp1hqytSiIunnRJ3wLR0ZpAo2y3My
   15.30 +BpBTCvIVZ757R8jzPYeYvIUEFU+9ctb1k9VOzA0T7Okdk0KUvNtSDOZ7EMK6IBgI
   15.31 +ns4NDX5tRJ9pFfn81R6/yOLZbLZvJYDIc1+RBKc/A/XbIjA4lKhpH+F6vi0a3DBL
   15.32 +lzYIAJyfJf/nNkKW5J3cKDxm8tn4/3zckCb2qhgXl6jeXCffhEk1S76JcgQd71bn
   15.33 +qYCTseJ2UgY15QB350F3wp8oxepy5Ir2JG9+SyhRt48rRKEBYaKDHYSyqfym+u7v
   15.34 +Asl7qn4QIiLrgZH7J2D09kV3yLn2+b2fnOOSNcKb9AZaAcW9dgzh3CFUkYmw8A74
   15.35 +o0m5KGFK4hBvyMZl1TTCweMt3gAj9GSsgGwUvRb8B0tGuPBxsiyKVWoBbJIPwNtr
   15.36 +knEkJC/LsYYP+JCZiKQWhs/lb9lPF0DeuvrVkaRZjoh7JkXilMPO6tX5IZtITxR5
   15.37 +/KyR3tmBE7n8QWXx0BFAKQLbAlQ=
   15.38 +=2XFN
   15.39 +-----END PGP PUBLIC KEY BLOCK-----
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/test/test_keys/pub/priv-key-import-test-other_1-0xC785F20A_pub.asc	Fri Apr 13 00:45:38 2018 +0200
    16.3 @@ -0,0 +1,36 @@
    16.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    16.5 +
    16.6 +mQENBFrPz6sBCADMI5LmOShV4onXlwzqg3EMAqGp2wspLtSoNfe/32/qXDX7V+X9
    16.7 +d8Q7IXyYT+EFT6VylJAk0uoFgmLjRyhAYTmCTNxRbt0v8agVqdIKMP8hN0MphzYe
    16.8 +stYJDOfzaNh/T5d+jIleFflJ5Sqpv5xC97b7JQhF186MFu1k+Xp2p9Z7i7PgD0kz
    16.9 +G7lBfoXw8Fn9mYciFCB0Wa4IJ4FrHXVdkix3Q+lK2ypQR/INRehrdgh86XxEOp6J
   16.10 +SOuKsmP0wLKcsgSZshdjnpyAA8sGzhahhDsgNRgU1Gazd73VEVBU1QfBR4bnTlCS
   16.11 +qq4JYsj1knJ1kGwmVpCn4HQBWoz6B85qlVzNABEBAAG0RlByaXZhdGVLZXkgSW1w
   16.12 +b3J0IFRlc3QgMSA8cHJpdi1rZXktaW1wb3J0LXRlc3Qtb3RoZXJfMUBkYXJ0aG1h
   16.13 +bWEuY29vbD6JATgEEwEKACIFAlrPz6sCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4B
   16.14 +AheAAAoJEF9FvqnHhfIKZpEIAMQKsAvU6LBjg5wodKwJKhBjRVzh9153xkWBMTFw
   16.15 +kIVocyvnRkpVHHTtVd2cfyc9F5DTYwO7iQODAwxAYJgHLq7UGzX4nh/3YjCUkKfX
   16.16 +0Fy69JLsbTm62TuYBrUQJEDiy2lKritEa2enT5UFRT2Somgs5AWhhL6ll0/izf+8
   16.17 +ur1a3Z4xpe1LwRRp0iTdHicdnM86DT4COVNUIWWUXEPH/MFKmZUxbzrHuj/36Y4W
   16.18 +84u3Yamut9NdyhAxSX33LMA5jV2tPgQO+ksDQwRaS7mpSxntRbodHrCFjP+i77hg
   16.19 +bD3I5nvCrUc9yqddYfRrTSMua7fWBAX/6swDxgR1dzFbmNm5AQ0EWs/PqwEIALj2
   16.20 +9aoQs7pvpHGmB0cmUMlu9zGFMH/JTPHCg+KuIjU9VlioXXKjYXAEEpgcxmc0eAZ+
   16.21 +dZ4dEDMdyU4xCdRos9Cmue6To7urUHq0bzuV9e53FGOQThz9xMJ9/2A6ZWndsVOg
   16.22 +EsJb55VSbR4O4dMuptlZhoCoGfpUWyIncMZ7PZPYFQZyWdBKTlKtnIkhNiMWiblS
   16.23 +d+ccifFwgBc6SqjAFpMWkqmd5EOMhhuulABa5mj6YSe37gIxjy1dzbk2XVN3ix7W
   16.24 +wMKXPhNk88Tbqf1lZf/L2VaTfMT/RpQ4ZfsYHrkZwdBkM/8pOoIKnBeVK9QvMrRD
   16.25 +VJ+O5t26fU4Fb7YjyAUAEQEAAYkCPgQYAQoACQUCWs/PqwIbLgEpCRBfRb6px4Xy
   16.26 +CsBdIAQZAQoABgUCWs/PqwAKCRDnGVof+W6UqtjPB/wOtJ/kiTXE9+I3krk98BFU
   16.27 +KA4m1T269k02vYkqH9YXZx2LtdicJFNt2SYfazXxoako8EseTQl+ke2YQZVbsbM+
   16.28 +/gcui69JfzSwpnP2TXgtldPl9lU9uUCkb7cuq2VHOzpgv1FqwC5S2jDiRGCmCwEJ
   16.29 +78/YCC59Ifvp5f6NwTKg8ggCO6e5kFN1qYEkoY3GViR6Cntyj0HhmrTlsi5EkLwV
   16.30 +8cqyZiZuPQR2g7X/zeweItV9sV/XJVpOeowoOA5rVs8ov6jorrAGHRa6cyQ8hcU7
   16.31 +1u2rndEeqLE6zJQwXJAsT3RrfgYP6g2O27aYz700F1BepDzPWq/rOh1QL1rtVD/0
   16.32 +SxsH/jilplZgJkBgcNldsEavYivG1ANB3pFozvyg7AIvNNriaSutIEeJU3CeGfAK
   16.33 +W0mD3c1UTK+VvyyfhK99CHTdoaybISMokBcL3wq8GNqHKD9Kml8phB7efHUk09Gp
   16.34 +P5HSWET0TsvEgoqC7s2oLl4tr0QAhF8i8QKms6luMrSaWtp9epmWcP5P5KXhrYld
   16.35 +mH2hM7msu1a1d+5kHoQMpuRs7sUAZtcAvTixSZRsyvwaBeKNtSR+V5b+j+PhQ3yS
   16.36 +VzCuSYjwqOXCIlMatYE1fJs8tXZ/+IpGPEu0SZgrotrvARKV0RPWpjI3JWKHaCAC
   16.37 +8e+WJtt/CpvmTvw/xn6Lntpa66s=
   16.38 +=eOZU
   16.39 +-----END PGP PUBLIC KEY BLOCK-----
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/test/test_keys/pub/priv-key-import-test-other_2-0xF26F5504_pub.asc	Fri Apr 13 00:45:38 2018 +0200
    17.3 @@ -0,0 +1,36 @@
    17.4 +-----BEGIN PGP PUBLIC KEY BLOCK-----
    17.5 +
    17.6 +mQENBFrPz6wBCACt10T2hoQS6x34/VvM+FgREyBvZahsfL66za/xNtP80w7ALK6e
    17.7 +TlNjR46c/vh1CW/KSRL0AGOU+BvvxymS0ob2DmiDD4/N2F83oVGMfNkPaQOQayuW
    17.8 +xOLsg1x7PzaSlZbAfKRPyafGu5KLrq5HYHFnQm1r1QDgxTbH74vRYQjh10oisVqX
    17.9 +MEl4LkXraXX4WcKaSLsqpgV15HsEOKbz1j1LPmPFvICqJcX0tY2KDjIBpyNAD4Aj
   17.10 +fKBtM1mj9wiR4euwEvxl97xpocCLwHwt8iZ1FdlzUtPG3rPj94LlCpc3zi+AdM5g
   17.11 +nT93mo30WZPB/SpUkWzBGGhbk+UMo7YC1qbVABEBAAG0RlByaXZhdGVLZXkgSW1w
   17.12 +b3J0IFRlc3QgMiA8cHJpdi1rZXktaW1wb3J0LXRlc3Qtb3RoZXJfMkBkYXJ0aG1h
   17.13 +bWEuY29vbD6JATgEEwEKACIFAlrPz6wCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4B
   17.14 +AheAAAoJECbYH63yb1UExsIH/2WzjCqactsKsDUn8jilP/h2/kb+FeEd63dFvxRe
   17.15 +BtrA2XgkELfpN+91t7WBgwFue6USNA9sNcS64ivIc/0MthoJHBQ7ulbH6wNmK6/d
   17.16 +hAgZO7mMfPQp5AtTYfN2Xb5klKvWQH+PTA3dWSXTi1gGc5lXaPHkLlj+w3jOM2iT
   17.17 +ZVlHjiqF+9O1ITDSAZ/KB971/maycfUto4JYfay4gN/s0voSMW5LU1xZmLxMMLQJ
   17.18 +5UlV49ckYyKMbqTW5veQCR+QrlRdMird6DYePAWhgya4S5hpXiHJUAJwGqQnLfbk
   17.19 +t/0hABo9Crw8UkdbZe3Qr8hUnRNPmRTOwb2Yzqam/o3azJq5AQ0EWs/PrAEIANll
   17.20 +4WtrCxU5nLryLftuUz9BKFrvD6U4RAu8DPKYX8t4Z5rRkXYYtBkhubEq8E06dUzl
   17.21 +Cn2wAUUE/A/8QTrKflNpMXIo/evwPWYBbpIoJ1KpDC3WF6VLBSmf6D1U3q7eT6e3
   17.22 +e8GPb07FwG7Ygm5EspmQS1j658KAsV8/2CsI8UtMOffK46dUthLyoaXk7nilwwQY
   17.23 +Z4qPJjLbfpzZbv/vG4WbHpqoVNN6DZ92TCz3DRAfS8VD9QJCUqUCz5tEAilnn619
   17.24 +e74euRGnz0HyAzZJuvs3yy2/E6mAPfdZKeNwtJgVqRjQrG57Ma6ux7a+dfEqdPUe
   17.25 +qerZgi9Sp+faAhb5zwcAEQEAAYkCPgQYAQoACQUCWs/PrAIbLgEpCRAm2B+t8m9V
   17.26 +BMBdIAQZAQoABgUCWs/PrAAKCRDVZ/azXGJIUMezCAChRI+nihF+aE+yExmyg2rz
   17.27 +Bwv7ued/vjZEP34wHL67oRfuh8WMvxFahkmlPJoW/LSRk+lf5EkKYsBmaRtUhJH1
   17.28 +nGPPARw7VmZ9TmmdWkklIyeQuJMUXrUoTm82to/2n7tZxnOoDSzGojvl7hXZAhyE
   17.29 +NIcJlsbIALOSfvWybX1Q2PR8+Zpmy+EYrELIdeBxzNoqWzAyM7T9ncmBBXBxgorF
   17.30 +YfOBG/N2uDn1jpajv/i3FTKAD1fIPhYE7KA8EM3YUWtPaAohAE8GkXRuI9yADTh5
   17.31 +myvpXXP0Nr1wlQVUL4AB5Z1EfLufQ/R5mS5y5W/WEZwhqcj9vBJAGalARd/Effn+
   17.32 +PS8IAIDr6M0YwLbK4akDntQLOceDi5RW9oGLmAVZF+ncuF1J4eEuRpYSHZ7SfnF5
   17.33 +KhZZXA2U453ZZJK4it9qa883+a98O4KD6xiFAtkxKEd4KxgRPKx9u6q03evfai+J
   17.34 +zm4eBtbGGA3hPiTHYRgPmJjYsEcKYFHkIFG5z+lzNVWLH892dtn7DQ7PDF3xDMe7
   17.35 +peNS4g2M67iHYotwklnCafCozIFbLSDwAiWH07UUbOuFnb1kbjxu/5WH/OL350Yx
   17.36 +V2RIg0UlWZqnoFbQFXZGk1B26TyL2fwZY4ImX/5VZNBLWzPTgtD3/UPsSxT9fggb
   17.37 +iA0f1dMrzZoAZVQmaMqaeGTouYM=
   17.38 +=F5ZF
   17.39 +-----END PGP PUBLIC KEY BLOCK-----
    18.1 --- a/test/test_util.cc	Wed Apr 11 16:54:09 2018 +0200
    18.2 +++ b/test/test_util.cc	Fri Apr 13 00:45:38 2018 +0200
    18.3 @@ -267,7 +267,6 @@
    18.4          case PEP_ct_key_too_short:
    18.5              return "PEP_ct_key_too_short";
    18.6          case PEP_ct_compromised:
    18.7 -        case PEP_ct_compromized:
    18.8              return "PEP_ct_compromised";
    18.9          case PEP_ct_mistrusted:
   18.10              return "PEP_ct_mistrusted";