summaryrefslogtreecommitdiffstats
path: root/comm/mail/test/browser/openpgp/data/keys
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/test/browser/openpgp/data/keys')
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-pub.asc15
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-rev.asc9
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-secret-with-pp.asc17
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-secret.asc17
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-pub.asc43
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-rev.asc16
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-secret-with-pp.asc83
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-secret.asc83
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/carol@example.com-0x3099ff1238852b9f-pub.asc51
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/carol@example.com-0x3099ff1238852b9f-secret.asc107
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/carol@pgp.icu-0xEF2FD01608AFD744-revoked-secret.asc90
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/eddie@openpgp.example-0x15e9357d2c2395c0-pub.asc13
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/eddie@openpgp.example-0x15e9357d2c2395c0-secret.asc15
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/encryption-subkey-bad.pgpbin0 -> 749 bytes
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/heisenberg-signed-by-pinkman.asc37
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/invalid-pubkey-nosigs.pgpbin0 -> 285 bytes
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/key-binary.gpgbin0 -> 414 bytes
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/key-with-utf8-comment.asc15
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/kylie-0x1AABD9FAD1E411DD-secret-subkeys.asc23
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/ofelia-public.asc68
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/ofelia-secret-subkeys.asc108
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/ofelia-secret.asc129
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/secret-for-preferred-sign-subkey-is-missing--a-without-second-sub--sec.asc129
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/secret-for-preferred-sign-subkey-is-missing--b-with-second-sub--pub.asc95
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/two-enc-subkeys-one-deleted.sec.asc35
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/two-enc-subkeys-still-both.pub.asc31
-rw-r--r--comm/mail/test/browser/openpgp/data/keys/untweaked-secret.asc15
27 files changed, 1244 insertions, 0 deletions
diff --git a/comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-pub.asc b/comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-pub.asc
new file mode 100644
index 0000000000..68fdb39324
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-pub.asc
@@ -0,0 +1,15 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Comment: Alice's OpenPGP certificate
+Comment: https://www.ietf.org/id/draft-bre-openpgp-samples-01.html
+
+mDMEXEcE6RYJKwYBBAHaRw8BAQdArjWwk3FAqyiFbFBKT4TzXcVBqPTB3gmzlC/U
+b7O1u120JkFsaWNlIExvdmVsYWNlIDxhbGljZUBvcGVucGdwLmV4YW1wbGU+iJAE
+ExYIADgCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQTrhbtfozp14V6UTmPy
+MVUMT0fjjgUCXaWfOgAKCRDyMVUMT0fjjukrAPoDnHBSogOmsHOsd9qGsiZpgRnO
+dypvbm+QtXZqth9rvwD9HcDC0tC+PHAsO7OTh1S1TC9RiJsvawAfCPaQZoed8gK4
+OARcRwTpEgorBgEEAZdVAQUBAQdAQv8GIa2rSTzgqbXCpDDYMiKRVitCsy203x3s
+E9+eviIDAQgHiHgEGBYIACAWIQTrhbtfozp14V6UTmPyMVUMT0fjjgUCXEcE6QIb
+DAAKCRDyMVUMT0fjjlnQAQDFHUs6TIcxrNTtEZFjUFm1M0PJ1Dng/cDW4xN80fsn
+0QEA22Kr7VkCjeAEC08VSTeV+QFsmz55/lntWkwYWhmvOgE=
+=iIGO
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-rev.asc b/comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-rev.asc
new file mode 100644
index 0000000000..5e67de7a7c
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-rev.asc
@@ -0,0 +1,9 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Comment: Alice's revocation certificate
+Comment: https://www.ietf.org/id/draft-bre-openpgp-samples-01.html
+
+iHgEIBYIACAWIQTrhbtfozp14V6UTmPyMVUMT0fjjgUCXaWkOwIdAAAKCRDyMVUM
+T0fjjoBlAQDA9ukZFKRFGCooVcVoDVmxTaHLUXlIg9TPh2f7zzI9KgD/SLNXUOaH
+O6TozOS7C9lwIHwwdHdAxgf5BzuhLT9iuAM=
+=Tm8h
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-secret-with-pp.asc b/comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-secret-with-pp.asc
new file mode 100644
index 0000000000..3d2081573f
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-secret-with-pp.asc
@@ -0,0 +1,17 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+lIYEXEcE6RYJKwYBBAHaRw8BAQdArjWwk3FAqyiFbFBKT4TzXcVBqPTB3gmzlC/U
+b7O1u13+BwMCd/mqK8s+deb/8ZESR0hHYFgUdnYXaG+iwi6g345EZT7r2HxUgaeb
+Qs/f5Bn4zvUYXsnU5p7BN0QxRWMbzago/JFCYKlHuBQABQ0WN4gaKLQmQWxpY2Ug
+TG92ZWxhY2UgPGFsaWNlQG9wZW5wZ3AuZXhhbXBsZT6IkAQTFggAOAIbAwULCQgH
+AgYVCgkICwIEFgIDAQIeAQIXgBYhBOuFu1+jOnXhXpROY/IxVQxPR+OOBQJdpZ86
+AAoJEPIxVQxPR+OO6SsA+gOccFKiA6awc6x32oayJmmBGc53Km9ub5C1dmq2H2u/
+AP0dwMLS0L48cCw7s5OHVLVML1GImy9rAB8I9pBmh53yApyLBFxHBOkSCisGAQQB
+l1UBBQEBB0BC/wYhratJPOCptcKkMNgyIpFWK0KzLbTfHewT356+IgMBCAf+BwMC
+Q/WYlB23rWL/ldyhBBysb6VudEy48vqp2niO4qZSDcbQiL+tk56SfrnMmP0V/w3M
+I8YuUVsIOPHklnJH3NB0oLbR8HVQq3s14KSImVUOcIh4BBgWCAAgFiEE64W7X6M6
+deFelE5j8jFVDE9H444FAlxHBOkCGwwACgkQ8jFVDE9H445Z0AEAxR1LOkyHMazU
+7RGRY1BZtTNDydQ54P3A1uMTfNH7J9EBANtiq+1ZAo3gBAtPFUk3lfkBbJs+ef5Z
+7VpMGFoZrzoB
+=mz9G
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-secret.asc b/comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-secret.asc
new file mode 100644
index 0000000000..d9252bafd6
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/alice@openpgp.example-0xf231550c4f47e38e-secret.asc
@@ -0,0 +1,17 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+Comment: Alice's OpenPGP Transferable Secret Key
+Comment: https://www.ietf.org/id/draft-bre-openpgp-samples-01.html
+
+lFgEXEcE6RYJKwYBBAHaRw8BAQdArjWwk3FAqyiFbFBKT4TzXcVBqPTB3gmzlC/U
+b7O1u10AAP9XBeW6lzGOLx7zHH9AsUDUTb2pggYGMzd0P3ulJ2AfvQ4RtCZBbGlj
+ZSBMb3ZlbGFjZSA8YWxpY2VAb3BlbnBncC5leGFtcGxlPoiQBBMWCAA4AhsDBQsJ
+CAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE64W7X6M6deFelE5j8jFVDE9H444FAl2l
+nzoACgkQ8jFVDE9H447pKwD6A5xwUqIDprBzrHfahrImaYEZzncqb25vkLV2arYf
+a78A/R3AwtLQvjxwLDuzk4dUtUwvUYibL2sAHwj2kGaHnfICnF0EXEcE6RIKKwYB
+BAGXVQEFAQEHQEL/BiGtq0k84Km1wqQw2DIikVYrQrMttN8d7BPfnr4iAwEIBwAA
+/3/xFPG6U17rhTuq+07gmEvaFYKfxRB6sgAYiW6TMTpQEK6IeAQYFggAIBYhBOuF
+u1+jOnXhXpROY/IxVQxPR+OOBQJcRwTpAhsMAAoJEPIxVQxPR+OOWdABAMUdSzpM
+hzGs1O0RkWNQWbUzQ8nUOeD9wNbjE3zR+yfRAQDbYqvtWQKN4AQLTxVJN5X5AWyb
+Pnn+We1aTBhaGa86AQ==
+=n8OM
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-pub.asc b/comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-pub.asc
new file mode 100644
index 0000000000..732ad2fef5
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-pub.asc
@@ -0,0 +1,43 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Comment: Bob's OpenPGP certificate
+Comment: https://www.ietf.org/id/draft-bre-openpgp-samples-01.html
+
+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
+NEJd3XZRzaXZE2aAMQ==
+=NXei
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-rev.asc b/comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-rev.asc
new file mode 100644
index 0000000000..ed22c45d1c
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-rev.asc
@@ -0,0 +1,16 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Comment: Bob's revocation certificate
+Comment: https://www.ietf.org/id/draft-bre-openpgp-samples-01.html
+
+iQG2BCABCgAgFiEE0aZuGiOxgsmYD3iM+/zIKgFeczAFAl2lnQQCHQAACgkQ+/zI
+KgFeczAIHAv/RrlGlPFKsW0BShC8sVtPfbT1N9lUqyrsgBhrUryM/i+rBtkbnSjp
+28R5araupt0og1g2L5VsCRM+ql0jf0zrZXOorKfAO70HCP3X+MlEquvztMUZGJRZ
+7TSMgIY1MeFgLmOw9pDKf3tSoouBOpPe5eVfXviEDDo2zOfdntjPyCMlxHgAcjZo
+XqMaurV+nKWoIx0zbdpNLsRy4JZcmnOSFdPw37R8U2miPi2qNyVwcyCxQy0LjN7Y
+AWadrs9vE0DrneSVP2OpBhl7g+Dj2uXJQRPVXcq6w9g5Fir6DnlhekTLsa78T5cD
+n8q7aRusMlALPAOosENOgINgsVcjuILkPN1eD+zGAgHgdiKaep1+P3pbo5n0CLki
+UCAsLnCEo8eBV9DCb/n1FlI5yhQhgQyMYlp/49H0JSc3IY9KHhv6f0zIaRWs0JuD
+ajcXTJ9AyB+SA6GBb9Q+XsNXjZ1gj75ekUD1sQ3ezTvVfovgP5bD+vPvILhSImKB
+aU6V3zld/x/1
+=mMwU
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-secret-with-pp.asc b/comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-secret-with-pp.asc
new file mode 100644
index 0000000000..8675bb5679
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-secret-with-pp.asc
@@ -0,0 +1,83 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+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
+=ftGn
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-secret.asc b/comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-secret.asc
new file mode 100644
index 0000000000..f1d746db3f
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/bob@openpgp.example-0xfbfcc82a015e7330-secret.asc
@@ -0,0 +1,83 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+Comment: Bob's OpenPGP Transferable Secret Key
+Comment: https://www.ietf.org/id/draft-bre-openpgp-samples-01.html
+
+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
+=miES
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/carol@example.com-0x3099ff1238852b9f-pub.asc b/comm/mail/test/browser/openpgp/data/keys/carol@example.com-0x3099ff1238852b9f-pub.asc
new file mode 100644
index 0000000000..d85b176003
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/carol@example.com-0x3099ff1238852b9f-pub.asc
@@ -0,0 +1,51 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=bMNH
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/carol@example.com-0x3099ff1238852b9f-secret.asc b/comm/mail/test/browser/openpgp/data/keys/carol@example.com-0x3099ff1238852b9f-secret.asc
new file mode 100644
index 0000000000..71162efa56
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/carol@example.com-0x3099ff1238852b9f-secret.asc
@@ -0,0 +1,107 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+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
+ASX8RjxM7vcUy1epPcElUwoB
+=BUDZ
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/carol@pgp.icu-0xEF2FD01608AFD744-revoked-secret.asc b/comm/mail/test/browser/openpgp/data/keys/carol@pgp.icu-0xEF2FD01608AFD744-revoked-secret.asc
new file mode 100644
index 0000000000..3ac661f8d8
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/carol@pgp.icu-0xEF2FD01608AFD744-revoked-secret.asc
@@ -0,0 +1,90 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+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
+=gfjr
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/eddie@openpgp.example-0x15e9357d2c2395c0-pub.asc b/comm/mail/test/browser/openpgp/data/keys/eddie@openpgp.example-0x15e9357d2c2395c0-pub.asc
new file mode 100644
index 0000000000..0924b55332
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/eddie@openpgp.example-0x15e9357d2c2395c0-pub.asc
@@ -0,0 +1,13 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mDMEVKScpxYJKwYBBAHaRw8BAQdAcluj90h0Z2/+tKbb8v3lGLaZ1/P75HJnJsoe
+XNW48TG0JUVkZGllIEV4cGlyZWQgPGVkZGllQG9wZW5wZ3AuZXhhbXBsZT6IlgQT
+FggAPhYhBEzDeY/d9NC7FHzcLhXpNX0sI5XABQJUpJynAhsDBQkDwmcABQsJCAcC
+BhUKCQgLAgQWAgMBAh4BAheAAAoJEBXpNX0sI5XA+mEBALOHJDxAY6NnPIFuwsb+
+3paF2V11GdWnQfDiuAJnAJZyAQDhOi700EYgv2hRTvY8BhGE2S9iVxwcPndXK2Ks
+UyflA7g4BFSknKcSCisGAQQBl1UBBQEBB0B8IMA2fUQt9krpM6Qt4gtAaPv2HE0/
+wwot19NzcMvaIgMBCAeIfgQYFggAJhYhBEzDeY/d9NC7FHzcLhXpNX0sI5XABQJU
+pJynAhsMBQkDwmcAAAoJEBXpNX0sI5XA6rEBALHFJbvzYwQ9FlxnoxJNRoiwnQpI
+cb8VSxvutKwmXG0CAQCTRed9yINA2DkYYfNXZntWNzxfx5QpqKaa18NsvC6TAQ==
+=CBRt
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/eddie@openpgp.example-0x15e9357d2c2395c0-secret.asc b/comm/mail/test/browser/openpgp/data/keys/eddie@openpgp.example-0x15e9357d2c2395c0-secret.asc
new file mode 100644
index 0000000000..eda1355c5f
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/eddie@openpgp.example-0x15e9357d2c2395c0-secret.asc
@@ -0,0 +1,15 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+lFgEVKScpxYJKwYBBAHaRw8BAQdAcluj90h0Z2/+tKbb8v3lGLaZ1/P75HJnJsoe
+XNW48TEAAP9MIfv9mSj3K/xOQNSeSDpA66wvudvPjlY/7CIYKL73ehHOtCVFZGRp
+ZSBFeHBpcmVkIDxlZGRpZUBvcGVucGdwLmV4YW1wbGU+iJYEExYIAD4WIQRMw3mP
+3fTQuxR83C4V6TV9LCOVwAUCVKScpwIbAwUJA8JnAAULCQgHAgYVCgkICwIEFgID
+AQIeAQIXgAAKCRAV6TV9LCOVwPphAQCzhyQ8QGOjZzyBbsLG/t6WhdlddRnVp0Hw
+4rgCZwCWcgEA4Tou9NBGIL9oUU72PAYRhNkvYlccHD53VytirFMn5QOcXQRUpJyn
+EgorBgEEAZdVAQUBAQdAfCDANn1ELfZK6TOkLeILQGj79hxNP8MKLdfTc3DL2iID
+AQgHAAD/Uhh/K3jAQLD8LZ2IPmhXPkbTzmQ2vWOwR+QNjW8gXkAPB4h+BBgWCAAm
+FiEETMN5j9300LsUfNwuFek1fSwjlcAFAlSknKcCGwwFCQPCZwAACgkQFek1fSwj
+lcDqsQEAscUlu/NjBD0WXGejEk1GiLCdCkhxvxVLG+60rCZcbQIBAJNF533Ig0DY
+ORhh81dme1Y3PF/HlCmopprXw2y8LpMB
+=nm40
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/encryption-subkey-bad.pgp b/comm/mail/test/browser/openpgp/data/keys/encryption-subkey-bad.pgp
new file mode 100644
index 0000000000..5ea124082f
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/encryption-subkey-bad.pgp
Binary files differ
diff --git a/comm/mail/test/browser/openpgp/data/keys/heisenberg-signed-by-pinkman.asc b/comm/mail/test/browser/openpgp/data/keys/heisenberg-signed-by-pinkman.asc
new file mode 100644
index 0000000000..388539b907
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/heisenberg-signed-by-pinkman.asc
@@ -0,0 +1,37 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+AOAHSyc=
+=M6Ba
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/invalid-pubkey-nosigs.pgp b/comm/mail/test/browser/openpgp/data/keys/invalid-pubkey-nosigs.pgp
new file mode 100644
index 0000000000..a844ae58f2
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/invalid-pubkey-nosigs.pgp
Binary files differ
diff --git a/comm/mail/test/browser/openpgp/data/keys/key-binary.gpg b/comm/mail/test/browser/openpgp/data/keys/key-binary.gpg
new file mode 100644
index 0000000000..3d99fc04c1
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/key-binary.gpg
Binary files differ
diff --git a/comm/mail/test/browser/openpgp/data/keys/key-with-utf8-comment.asc b/comm/mail/test/browser/openpgp/data/keys/key-with-utf8-comment.asc
new file mode 100644
index 0000000000..5006f29196
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/key-with-utf8-comment.asc
@@ -0,0 +1,15 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Comment: 💌 (unicode symbol: love letter)
+Comment: 😀 (unicode symbol: smiley)
+
+mDMEY4d9vRYJKwYBBAHaRw8BAQdAhoLFPAnuWEK0GKQqJfZLeIMJ8mzzo0Bxm47G
+04P6qHC0H3Rlc3QgPHRlc3QtdW5pY29kZUBleGFtcGxlLmNvbT6IkwQTFggAOxYh
+BHJRT0PQBg/FiOgCOIUsVebSr9fvBQJjh329AhsDBQsJCAcCAiICBhUKCQgLAgQW
+AgMBAh4HAheAAAoJEIUsVebSr9fvSqIA/1I5cpEa2UdGGKVXndz3HFoUq5TrRVZd
+1el8bq177HbaAQDkJlNvBxwcjW3yDVo4+nxoqm8nK1b8yPwQet2NXobcArg4BGOH
+fb0SCisGAQQBl1UBBQEBB0CqqMW7jKUygeB9+DmqMWBoWPZXiSLe4imAGj3t+h/c
+JgMBCAeIeAQYFggAIBYhBHJRT0PQBg/FiOgCOIUsVebSr9fvBQJjh329AhsMAAoJ
+EIUsVebSr9fvRbwA/ApVf9/S9YjFEcR74W/R5G+PVaL15ERHfiR0f7AYqDgiAPsG
+N+POP/0TWKb+uT/jz2QYhjxbdQsELGvWQePLhOb0Aw==
+=pPjp
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/kylie-0x1AABD9FAD1E411DD-secret-subkeys.asc b/comm/mail/test/browser/openpgp/data/keys/kylie-0x1AABD9FAD1E411DD-secret-subkeys.asc
new file mode 100644
index 0000000000..d830e8b4f0
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/kylie-0x1AABD9FAD1E411DD-secret-subkeys.asc
@@ -0,0 +1,23 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+lDsEZTeZ2RYJKwYBBAHaRw8BAQdAqq4XimYIM2vl7huc6QqER7mrVmVLrqUvaRlj
+KDGZ6WX/AGUAR05VAbQ8S3lsaWUgKE9mZmxpbmUgcHJpbWFyeSBrZXksIHR3byBz
+dWJrZXlzKSA8a3lsaWVAZXhhbXBsZS5jb20+iJMEExYKADsWIQT0kImOl5Bh2zJ6
+cYcaq9n60eQR3QUCZTeZ2QIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAK
+CRAaq9n60eQR3Sg/AP0Q1v7QqEdUWmPtMLDmfQq8TM2P5SfxyXdX64YSwSkUJAD/
+bkw2GBTtOpFlZspQiOUqZH0rx64uY3Ol4N2c+HoQjweciwRlN5nZEgorBgEEAZdV
+AQUBAQdAjGGp9Wk2VnkXL6LxrO0pzpDy18pLLoTKbd+OT8+O4HcDAQgH/gcDAjtw
+AvX3bkqb9mr9Z90GFVmc7RTh4DZlrim+XfaUub/U0yBmVvBHO8i/qURr+Y8KIylQ
+emvDPcQ2R6rIyrDSNBMyRhAGvxCSyNlcJqTGqYWIeAQYFgoAIBYhBPSQiY6XkGHb
+Mnpxhxqr2frR5BHdBQJlN5nZAhsMAAoJEBqr2frR5BHdZuYBAMFwcpxybxqWW8lc
+CgisqDFr/6wXrVPVWtPb9F6LrgowAP4zoFdQe+tprNXul7pF/i8MCGB1mW6KPrw4
+xOgce/uaD5yGBGU3mhUWCSsGAQQB2kcPAQEHQBeDD103qyEq9S3nMuGyH7fz375d
+Tg58FRQ5/dgEvuQN/gcDAj1ky4HDCu3h9jxnNzgjSL9r6o/DP+HLIw10eXdVOwZ8
+ILOCq3PBye8cR7MEN+rh93/uggTNo5pzSop4YDcMIqSxKZP/FjCU8QMUEz+ygNSI
+7wQYFgoAIBYhBPSQiY6XkGHbMnpxhxqr2frR5BHdBQJlN5oVAhsCAIEJEBqr2frR
+5BHddiAEGRYKAB0WIQQPgSADIsBrXb3vr6o4nLzJ01hGJQUCZTeaFQAKCRA4nLzJ
+01hGJYEkAP4u6ExG6VqTTm2E40zLxhIo3A8aFwxzjBDtF7KGIiuc9QEAzUa+YLXc
+ztnu4IWhnhefw0u7W3mv6lcOnSv5VkohvA6XkQD/a5Vn3r9t1c89yqJ70MPsqOJk
+nCmjmwAiazsPzEGtZlUA/iBb3C9obolzxtjeEY4uL2DW34LR/eHEaprAd+MXnwAO
+=Yxqq
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/ofelia-public.asc b/comm/mail/test/browser/openpgp/data/keys/ofelia-public.asc
new file mode 100644
index 0000000000..3f14c948b3
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/ofelia-public.asc
@@ -0,0 +1,68 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+pU+YaR+fAGsRti5YsTIyMQ==
+=NsF4
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/ofelia-secret-subkeys.asc b/comm/mail/test/browser/openpgp/data/keys/ofelia-secret-subkeys.asc
new file mode 100644
index 0000000000..f324bda81f
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/ofelia-secret-subkeys.asc
@@ -0,0 +1,108 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+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
+=dKRC
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/ofelia-secret.asc b/comm/mail/test/browser/openpgp/data/keys/ofelia-secret.asc
new file mode 100644
index 0000000000..f8a63699d8
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/ofelia-secret.asc
@@ -0,0 +1,129 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+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
+MQ==
+=lHHo
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/secret-for-preferred-sign-subkey-is-missing--a-without-second-sub--sec.asc b/comm/mail/test/browser/openpgp/data/keys/secret-for-preferred-sign-subkey-is-missing--a-without-second-sub--sec.asc
new file mode 100644
index 0000000000..bcf9db3064
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/secret-for-preferred-sign-subkey-is-missing--a-without-second-sub--sec.asc
@@ -0,0 +1,129 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+lQVYBFLtfH4BDAC9ad3c2rD5jOZ0ynonf90JzXHvPeoksmj7fMT2KX3FTg+lzdKG
+40Pxk3/53/otqvYOvw8A6Pb18fOLlTvkTMQ2CFjRqd4oydFKHZjM+gWBoyFWMq2X
+PRIrYw6n3LJb6/wfula4rgnCVE4gOSkTBtto0yJCZtHQMh2blBtq2W/jNJs+OEpf
++LLDoOhO7B31HdWiVHuQTMG7sZwrH6MwuZKU0tYuwoA/Eeznuy9X42IKc7WEA3fj
+0A7Eme8Bw8lnZ1kiLe6jgAA1DxKBbu2dB3ParC+d97FZ6pWwnd0JiWZ7ws5F+KBF
+r4RSnJ552xUjrmiFehbAIZ1I9EY9m7eQ62lhOZAa/WfE7WA7hyufgpf0e8CR01Tj
+60ckFrfoTXnumWOASDJLUaGaGo9J2yjbBjcut8Nn2OfXysofzVevkrCi/zLFHWPa
+mjoa+M2R7vBl5alk6XoLSN0SBzDLeXpMdVfNBqLrlC4QbqI2oakkqEpX2VEV3f9Z
+ozlizzNMYSWp50UAEQEAAQAL/RwJ/29RqlAOxRC15nZRbcGlOX/+bNpI1NShqDB+
+fOFHyHY1bTxNiUHKIXA2cTzwaWNOciSi1+gZjIF1snt9x6/t9WP4Huxvz70Ge5eg
+TU9e/DDb6KmSP03P6Jv9xiNoYBa8SVkmXkh3nWcUvxlTcwhl9NTajqWgvZRJzPM4
+w+Dg6ThBMfVaBfCCsdD5EAg4heb1VaNLUYR86s7RbKFqXyILwewDG+P6PdUh9wSu
+ItXEQjMMJmPBaWY+GUzsFDTr7dsvFCRD2rJhaTlFaJhfN2F5dSrBwGQvNlDueity
+DbGBvYU6KzOuHwo37/dpRQ7NdQk9OGN0foLE7t5MxiCVpnzdtTXO0ypbPU9xSpkP
+Zo7c2ufPGx2HFVUW/9GKCruxR/aLfXCzkYC1ZbO26tjjp4YA0lQMOtCormjMFiw4
+OR3rISCvAuQ106nvjyfBs6UmtYJExaFdzERZqw8+Z/cT5lNpptHxtRQIN1eLktMv
+d8tWiDAHCurRqbthAJ/FQAs5gwYA1L32mx0YpfRA6S9DNAElR+s+ffkcr3I7dj5A
+RsAlsT0OXqFFfA007kB1+13Aww2UFnDI2gVkEWsFa75YUY9iUKOjllFyT6HFJiyq
+NzTv1V96OJOzrgfIzBdttZhb1YdlG7qnHQt7u8jeBCjVaB+7wzRCk0dknG/i9Qqz
+y4huWbu1KOlRE4FsrqguYR6e/O2KVBdvAkqlp9KcIWUoXyA7p3bYnQgqV6qGUHgM
+YZh010rMXpmtqKSIyjr4PekuPhI7BgDj7ZDLjLeAOCH3fdNKYV02oBlEpio4P5RR
+EoShoyiocczBXUfRolgJyO+8+4eKjs+xJNYiQDeZr8MrMkodXWXZT75uiBKBmDEN
+jaTMFp9C8nubmZ0ai7f4R8d49+XHy77h2yMTiwcNs2iLfSPWXl0VS8pFS4XfobMG
+ixhOG6p5Y2Rjc/t4uEDV+n11em3BGD5+d4/8WvBw+b0UVIrHnWbKCWDmE9FvB/fc
+HG9lDExvwJn++COsyK+lG2NlZJby1H8F/21hYNQGeFIBNSeDrPxRC4tgHHOA1LH0
+9qgEek6Zq9Ag3zblY4r3c5AnV4dMu7lnzseFUnBpb73SxsRD7e+6rg59wpmDeMs4
+ajpM9YLmVdPgYmn6OjpxdfmKgYpMZTjisGGFm7XbKKQ0GEFuo3oQggZYMuQ+d3eK
+cC+89gMU0eyP0gRg75feJpxlM158B6uVYB8pfap2d2yfeadJPcBSSdoVuwl2zQTK
+ECP46uW++mhN2gBVU4iyMphyrclOPbe8ItgBtDdzZWNyZXQtZm9yLXByZWZlcnJl
+ZC1zaWduLXN1YmtleS1pcy1taXNzaW5nQGV4YW1wbGUuY29tiQHOBBMBCgA4FiEE
+cagS43SiqCdNHP5mW1w0QlGl2n4FAlLtfH4CGwMFCwkIBwIGFQoJCAsCBBYCAwEC
+HgECF4AACgkQW1w0QlGl2n7aywwAgWr9bhgNwzesG7pJo2G0v5E/XlznEInkSxCl
+xTuRLg6uzQnLnFB4dCkN4TNhfrVkPl+PZS7BM9D84VwIjO7KbSnDILXt/eOi1uYk
+EdDLKrTxc7OAQMmnktvw3t8xsul+HvjY5EEYMz73+TWS5DHPuOX8B3gtzOnTDMfn
+PrslkmakypoQe+CAsjh6JZoHt19RIlvVg8xr8Gx0SeXlp0ZO+SA52Wb/Tp1sTpXV
+H8QBf5iOj++9wxaf6kJvRvdZqtxgqBSTaq3/w1z4Achav5/fofiQgQaJ2A02r4Uj
+RleUfMjF0RiFbu7XS7XXBvQ8Qnt00J0I91v0WnaagheDEyRezOoKYXh7ArU9X2b6
+uxumXDB1eSoR8HUMDxsEtmBEVxoXH8DhqDkiYXzrfm9GKdrIAzz/Miwxqb9G2XGq
+oX2VRBkpnGoaNG6K6a2v3kvfSZFKXCjfiRDVNeK6XL7f/VOqcO/gX+6UJHlqytNf
+ONloSdzOzWmgP9MH0vZxbeqEppVOnQVYBFLtfH4BDAC2k4vdz3B1pZfwC0jzWeZC
+uFLxZEBHKBJlt6q19PGovRZz3IXZE/pHNAsfSYZn82eJa9OJ9+BIUSjkxzA4Drnf
+Vg5mLk+bmy/LcH2IBVxZTBSiSjWkZijBqLjPDL+DKOp04LUYEoRFdmvC8pzDYdy3
+Fei32TBlie/VLIOHJY0YHjziYscIu6OhTnRsx2AcAeCxPr8BWxWWpLzoK1Bg3Ka3
+TnI9AqzqEFs0QChVuti7gzz2ItGhE6GUP6LyHVQJYRZgCyGzCxw2ObM3lsRBIpLU
+i0S0bcwfnaI8ZEJtRJp0ogdJvgzdnPa4AS93otmAsy0EeypKtW32yDH+bz9ddk4S
+if7Mat20m5dNNxFGecCGKUnk8JooiFg/5NmBOkCOuKV+foNSkbf+Ue++Yg3KVW5J
+ewpTJzgBENHKJKDYhUCnTJ4R38Yb/8Ub7caXibWJ4t/cQ06mymnm61rthQ57adz3
+ChC0+r+q1zj/eKI+rPyMWcRRUFWpZBBVds1Woje23jEAEQEAAQAL+wSYboJ/73gl
+ma89AHpAFLawlCVfaSsFVh+1bZSAgKHnNwDF7+BGs4Ot6psALzPv/WbZBgE8sgpt
+8Qgfn54EmF73x/tgTmiHsZ52s5EsNd6pRqJuWN7tQ5i6xAKRowMkkTCtjH9ZbXcA
+X95ffAzCqoMY+ANjIgfHPtg0M3AQFNbi4XRPCUyV6PylGHL5unh//1lkv3rjsZWZ
+6keTegWjHibiYIeauPKYBGyqcf1061I+b5cQKau6zlQIfUPn8zLcfMBd0d09QOAM
+JU5nPEMtWZKbow67eaCN66k23vI9bNbKMV+1et85gYa6dlgPYqcVTCNrNrcrRnlB
+eXbOTWVqVPkuDZWpYrC9dYVxF7CQvSOHOCVwZNojirMCJTYhCwsvL7GOp7UPIfiP
+2OOWclBBCpNsYDRxqTqp8KarlZPxl/bZkkcYDX6zWLN84ArAfUsGJsYHUiOQInUi
+UKG7R+GLsmmzLux1yBpkaQI8vJU9TBUZUrbu5cE227UzwkLlg5Ul4QYA0/iGHn6x
+fQh3u/fhdHkr1Noc7WbbPQopkdfAtOTZF16b6PG/JGRjgp01/bjCm7pc27JwjOuW
+e09SgNJ1zXfFvRa0XgOC7ZX22CAxT0nT/OUYtMa4cg2HndvDikOTOjDwKGjMzvuQ
+Yd5O4/NxkYVwdEEBy/MDsT2hUMgHXa22JGRGveTWZS2Pk1eWsoJPTcxDttE8a/Na
+jtqzNpGh6YZe0FyvcQmi7UIIeTm/1Rv4qc15DgaLms51fEzUtLJEIT5hBgDcf/uW
+PMQRVCxkexQgINUzqx2w2VEUnkgyMSaiTuKhJT90VhKy+9Yb1YGRKGA/SsdWhV7Y
+gxmoT73vbKB68KGIB4RS157jNH5DMlfMXXhuF0QRZm32jU7a4ShP/Do9KsHXCNva
+ZKc/DczrLfpnBjMWwS0w93pNQeZI2M1tHp07BMyW2JiNtcGXbz0iWq6tsq2J6JLY
+KbnW83KGXCvfLBS0N6qhP6i3fUktWZ17P3g8xLdQlCBii6VVdYRUkeD+kdEGAI8w
+K86sWfq+RCKwcNtfEXQZZ8ATOzYDDW0WPodU8suUqXuxEZUw9sG3EquIUSrmCGd9
+fWvAgxfHcE/RPjNn1xT+8soO+CeT84jhCpGcYAiWcOkFuOjYMsBQNSQmuz0GPnJf
+OOF8EWkJNXsp2JVZgCkMhBBnFWXM6CVydqaFQ6jspGt/LKsVBTtAxUisrjFB/f1k
+DhRd0zknWVZqrK3n0f3WiKgZpaEt8eclCypEsUywPvjah+HEO6LbziLftEBVkNXX
+iQG2BBgBCgAgFiEEcagS43SiqCdNHP5mW1w0QlGl2n4FAlLtfH4CGwwACgkQW1w0
+QlGl2n5MeQv9G8ZjWnszJAZa7iF0KnJrRInsrpiduzG2iONb45z1G3arXKkD2sKt
+2KL+AgMtLx+/DXHKsoJBNgjXmkM2EYiMUuKTpzsqE9TPNtnu5maZFc+Q0tMK9Ycf
+Ot/zLCja0Owxf0975Zg0Cck9JZSDGUqYTtYWaIQ+gID3bvtb9/5yEQ+5KmtdLYUH
+/yCeXraZ9y8rodHW91cVLCY0v3r3pgaV5zCB5iw1SwVnAWMqcA1s4oHffwOJTVQb
+9OoC+Yq2z4Nk86+wubEqnC+5x76Xqep7jIARRXWeuVufsUcci6YPNWmnHpd8/BPu
++nbvOVVD/X9fhOdxbL0DNymHmbh5zAsNz2l1rm58u8ACxx8UuugukgkKRmIcpxZE
+WRLGn7czwjUfluttSDCDDLMC9cP/R9sJyM+QTD+hK2sNCvx4nrHAf8jiDtk1Y+9h
+NXIvVXzuRp2W9nPJJopuAAGBvPizZF3Ej3nITJddb423z8+Jb1kAUKzH2wXSzgSh
+iPbtdboNhtsinQVYBFT064MBDADPZIdxXmDJJbnSfzgOI8c43YSteEFtJjSmTUo4
+fAMz/4RNk24FmFnnDNTqboE5qFVK7Mf6Zxbmgjo0cQQzPFPJXk9YyuN9Ge5lLeaQ
+0fXyfpIYTPbcunqBrbVjMcnI/v+x6O9ma+5c3AzX1CkRm0YrSu9t55Fm/y3bP/2u
+L1PVSmAr+AZMhMZf3xP7TZQXwqx1aROdUARAk6zR44JyiopOApCA5vwZsMgg/2rV
+t+B9VH430wqkQV53IGINXCum5oMpeBxm+LrzpYnZiUrMLv4uZkmmj/5Mx3+aDfIS
+u7+cmvbNzHoRsIBwphUtGD+SNdFr95wXSjxSfA6NNTJWGD1Gi9l2bO2grVq1j7sz
+h2QconAPrXv4hB72RxPAZP6gV0jfApb22ihEKi5FuOYY0i4halWBGWOXpseQue26
+fM+XsoS83TwMyk7lAA5a4hVQZDUr/JJjdIJkCtqoxixF+AU7W7w/1vnVgAGai8I1
+QI41KiGkm9F9nU/dCtQmnjuLu3kAEQEAAQAL/RSHN9zh4aSnZlBOpWbI5dRcIODm
+0VsTeAyqA9m5dLu15AultzM4lFWJcJ3P2Fyzq9WhwF2pzJt+cnJ0aV0E8Koy+pmo
+Y4IjifRb6cGV9slM+/sJyzmn/65MWnL6H6YUj4y1qNSzhEGOynqmlnYWr4hjf3Wa
+gUr3oTtdhyexqZOoLALOJxl13wjoVNsAH9OGQnnQr89Xd0RJGccgxO2/htcX6+PG
+eVe1pumVPqbu73qYXXH7IseFbOtPukTmRa/cixtv6Dda6FX63k2pfA+xbGTEijx1
+NXsU5Ol7wW1ZrhmJxIPRtTJrRAaPHDJzzx6p6WTEz0d2efe30UCS6aYuWy3yTe56
+TDyMlspHcsyw2Elr+1wthkjrZ1zXgGAP7kQtBmpEwyeSP7Fu49Fw8fSm0D027nbH
+SaqN2R/nkuqclFvUfg2WcskBc/Q51/qr2MTNlYWK+/uP7XKhywrzSlzLHnaxrlL3
+ESY1BZkZ9t9Va5sXzWBR2J8ogCMMv1ta9OSMMQYA3muIQo79ZZAnqLUECrHP0cst
+3PgfCGxED1aAZ68rlO93+pTA0kHlHURXGLVCLM5jP2UpTfN3oymJbjmr9WvZqcQY
+mRvJ9R2SuCH8tb6QZt0pT2nyhHuEwT/TNbtE04wMH2unHhmuavp20MqcFmXudI3b
+YEMa9zd51JPMtjB/UpkfXyXeIjjXnkZvbIuu+Ah93Z9xiKjkczEljX+ynFOLGOf5
+KTqDDDXepzO7YMZhIfhYSVLLX4/d5o6q0YLVllR9BgDutDGrnDn87bYl8hUQb7h6
+AkQeimrgqBuZ2B+Ubqq2f6Y52oKV9RS49KKrc+/DNSbME1+2/39W+NIPOuUB69UO
+48b9bmSiGOdUR02y9LYaE4qLCDR4gVmERsekf+GnaRFx/00gFgXCWnw1e5emcUPR
+W7hfrDzLO4At2vU+kPEbbnvlh64gs+tPz0c5AmdsqwZi000IQsvkzfXMI0LsZVNF
+NsAulu9B9lz1BMJ3pb8Hxf47oHAdxX3R0/OocRBXn60F+wcfplWrStRARMGK+/CM
+voYZKEWRZ6pk44a/vq1L9/VALUiGRB4XvXdiQK+rOH5vVJRhH9LFTgoM00X+sGZf
+r8WBbFl+hBHe5z+SUi916+qLq4+qhz/VwLTRZCZrBgEqxYsu0L4h7jKRL3ifZCV+
+nBf+4ObHXw8gk0+PT+ZuNQ28gslupvayWWcloMxxIT7KPVMvk+D4f4bYzhI0DCGZ
+Jbf4F7KOPMlN/ZYiz8jrFeIWeZjA1y0Sy0e6AKaKj4RJA/JriQNsBBgBCgAgFiEE
+cagS43SiqCdNHP5mW1w0QlGl2n4FAlT064MCGwIBwAkQW1w0QlGl2n7A9CAEGQEK
+AB0WIQRhIYHmBsx+W+KdrGhiXUgZ8C7nJwUCVPTrgwAKCRBiXUgZ8C7nJ0OrC/9S
++9c+9dlCz7ls/Ez8+3fnttL72Ui2VPEgB+KYj71K6Jx/29JFHec2Bl35Si/6NSWx
+25rrEbbYtcXQPqu0W7PqAfzytx+GxCdMDUHqMdcxx8mZn4WCYVYwxOhsNMQIZHmz
+0noJnHholQ9XsGVWkV9TPyW38zGVC0yHAakrJ5ZFuJN4f7UNydYgwyVtPbVfOryd
+7dDPaBNJOPjpgQ2Xuj1p4Ygz0WQZ+FYl8EcV4jzYi085lhuDCjX9gbF5IkIkjLZm
+RKpAX3tR8L+d5x8gTuVTZoLrpSDZR0WsSPFhgKKiY/hVo0oPKXoSz1DOygwk1PMS
+cEiJ5jbGYvQ+yBJbJO02O4fXTeiKYHONBIhu7fl+49JMXqOscHoKsP7PlCZ87YKq
+u6S1h/nHY+vVpbnhV2XDINWpn7d1qsBfewy/plXf5BPB4334ruqclz12DqreHXtO
+IzFr6LSTm4pIWia1Nxu03qXwCl9dhhBQCWZ00bnYzL19sWnN6HLdfvTdYxNPzn5T
+Ugv8C0Boxbf8lhkiy0+P8Z9JKP0sSRhjKlsoi7hk2artsfcPGOcid7WNP3Ruc+rh
+IQADbgjSHnUpJ892XPkJ58yUEPCr0B1+GkV93Lv41Q6UHqDHJOWeWqhOoD/qRT+6
+ZRGGA3BQ2xmxNKphsUx7uBcndQsig0JNCMawH/OklvlBqDMthlOFMeSfhkVvLymy
+DtikFrdkYQmo/IrFHe0leeiQ671ZF6MRxtnx6NmtJo29LOquReTU2LZyUJ6q6XEk
+daH1Av2c1u0BmIJoHSUgHaxM1wJ7oSE9GfGS9dDyWADAKv1obVb3Zpi5Dzr/oBN+
+ipstAEUYvBlLvaitt3Wvx9/8QUTpqxCQJk2owXE8omY2xH/yBJCiF/ht8+cUKw/a
+lbiFAUz9S2ncUC2j1j/myF17obcnrDWKwMbW0BPIkZmIqKyKp4GTL+rEkGiZzqcf
+s5zFIgnbiE4E7r3nKR3uc8RbeJ631che4mZjFi43lt7KVOAC+OD2j+tCnPz04f8H
+iUE5
+=f5S8
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/secret-for-preferred-sign-subkey-is-missing--b-with-second-sub--pub.asc b/comm/mail/test/browser/openpgp/data/keys/secret-for-preferred-sign-subkey-is-missing--b-with-second-sub--pub.asc
new file mode 100644
index 0000000000..a4eec6f4c1
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/secret-for-preferred-sign-subkey-is-missing--b-with-second-sub--pub.asc
@@ -0,0 +1,95 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+tA==
+=nDSP
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/two-enc-subkeys-one-deleted.sec.asc b/comm/mail/test/browser/openpgp/data/keys/two-enc-subkeys-one-deleted.sec.asc
new file mode 100644
index 0000000000..99a9c96578
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/two-enc-subkeys-one-deleted.sec.asc
@@ -0,0 +1,35 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+lFgEY01cZxYJKwYBBAHaRw8BAQdA0/vtsQqotv2/BlbtBvnC9J8oCEADfA0ohd1M
+rckzcFQAAQCRArAmnlHwP/ujI1JPmOfBsng0EREJhcLEvRJV3sO56xAntC90aGly
+ZC11aWQgPG11bHRpLXN1YmtleS10ZXN0LXRoaXJkLXVpZEBwZ3AuaWN1PoiTBBMW
+CgA7FiEEX/tXmslvesUot/ERAG28BiQHOm8FAmNNXkQCGwMFCwkIBwICIgIGFQoJ
+CAsCBBYCAwECHgcCF4AACgkQAG28BiQHOm+YgwD/Uk+D77bi6oQ9Z0CF99GoJM52
+ynn14hSzrZOXNuMVxEsA/juz6AEHkBC3jV/ZeQuBJQliBz7uXLxcj/bl/xYifscC
+tC5zZWNvbmQtdWlkIDxtdWx0aS1zdWJrZXktdGVzdC0ybmQtdWlkQHBncC5pY3U+
+iJMEExYKADsWIQRf+1eayW96xSi38REAbbwGJAc6bwUCY01cpQIbAwULCQgHAgIi
+AgYVCgkICwIEFgIDAQIeBwIXgAAKCRAAbbwGJAc6b2p4AQC3d/O+vFcnNe/GHOzu
+QmsP1ZBz5lAXtrWyauY6Adtp1AEAyj7BRAasgfEXLELb8N2TVX8NIetLU9+FH27Q
+P9AaZAu0LW11bHRpLXN1YmtleS10ZXN0IDxtdWx0aS1zdWJrZXktdGVzdEBwZ3Au
+aWN1PoiTBBMWCgA7FiEEX/tXmslvesUot/ERAG28BiQHOm8FAmNNXGcCGwMFCwkI
+BwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQAG28BiQHOm/OnwEA9k/CHig05CxJ
+pjwoCIrilHF62AO0r2kDd3wil4hF1nABAOiUCiSPVTq4AmAd3QW440WQab5dHZd9
+jOuc0WsDRwADnFgEY01ctxYJKwYBBAHaRw8BAQdAcdi+7ywtSvkYlpmmy3Ai3Hgt
+EMTnUnNtNDtTkIfFAugAAP93nRlqvPBPTqaReAq91JYIadNOT3iq3MsyR08RTWcJ
+Ug9RiO8EGBYKACAWIQRf+1eayW96xSi38REAbbwGJAc6bwUCY01ctwIbAgCBCRAA
+bbwGJAc6b3YgBBkWCgAdFiEED5X+QxlFxF1e8EjtPc3XaDh2NHsFAmNNXLcACgkQ
+Pc3XaDh2NHvhpQD9FA/tv7SU23f1xJ8WcvRVCRIh1wzQkgDrKdrBFfdXhPkA/iXd
++ZpJs7xkLYu0N75QYJJWF796WA/Z4DZVxxv6lBgBhnMA/RkmlJT+QUoVnqMfWJSq
+Hu4hFG07+doLPvhMUMKju5P2APwNolvvuIEJtswtcphofdgQnd8/JYjY3HOwPVzz
+ELfBB5xdBGNNXYcSCisGAQQBl1UBBQEBB0AkqcqaLksLBWGlLymck89q/RMsWc1C
+pnI1sYae0H8tOgMBCAcAAP90/BSxTFRDm1gtPsj/rICaHwnpzuxRq6Dx3GnhASE2
+6BHAiHgEGBYKACAWIQRf+1eayW96xSi38REAbbwGJAc6bwUCY01dhwIbDAAKCRAA
+bbwGJAc6b13yAQDuqCmCOKho7sNL6ZCBTWc3oKcUFCt+tj41sXPYwMqSowD+JbpN
+aR0TCo0p7K4fVzZ80/qoTaYubwcI+Cp57AqK1gCcWARjTV2oFgkrBgEEAdpHDwEB
+B0AVh/XLcWJIxjr1lawAyOmXAjSzLtnp4GcvbEPTiuhmwAABAJq1jRaMBch76ML4
+DJTZFq296InZhzdvMe5x3Hp0bm6eEa2IeAQYFgoAIBYhBF/7V5rJb3rFKLfxEQBt
+vAYkBzpvBQJjTV2oAhsgAAoJEABtvAYkBzpvb/kBANsloi0xUnnxT7Nc/j8X10mH
+WXOgGJ6g1RrBiky9l942AP0YrDC6GWfioUsCBb0fSKFHqx6tlnw25JpFH1IhZ1wC
+Aw==
+=gBXR
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/two-enc-subkeys-still-both.pub.asc b/comm/mail/test/browser/openpgp/data/keys/two-enc-subkeys-still-both.pub.asc
new file mode 100644
index 0000000000..b66dfd8b90
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/two-enc-subkeys-still-both.pub.asc
@@ -0,0 +1,31 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mDMEY01cZxYJKwYBBAHaRw8BAQdA0/vtsQqotv2/BlbtBvnC9J8oCEADfA0ohd1M
+rckzcFS0LnNlY29uZC11aWQgPG11bHRpLXN1YmtleS10ZXN0LTJuZC11aWRAcGdw
+LmljdT6IkwQTFgoAOxYhBF/7V5rJb3rFKLfxEQBtvAYkBzpvBQJjTVylAhsDBQsJ
+CAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJEABtvAYkBzpvangBALd38768Vyc1
+78Yc7O5Caw/VkHPmUBe2tbJq5joB22nUAQDKPsFEBqyB8RcsQtvw3ZNVfw0h60tT
+34UfbtA/0BpkC7QtbXVsdGktc3Via2V5LXRlc3QgPG11bHRpLXN1YmtleS10ZXN0
+QHBncC5pY3U+iJMEExYKADsWIQRf+1eayW96xSi38REAbbwGJAc6bwUCY01cZwIb
+AwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRAAbbwGJAc6b86fAQD2T8Ie
+KDTkLEmmPCgIiuKUcXrYA7SvaQN3fCKXiEXWcAEA6JQKJI9VOrgCYB3dBbjjRZBp
+vl0dl32M65zRawNHAAO4OARjTVxnEgorBgEEAZdVAQUBAQdAtEVlipyXCm2fdZO+
+ki8PztQwm8M5l3gfnnmgWZijcHADAQgHiHgEGBYKACAWIQRf+1eayW96xSi38REA
+bbwGJAc6bwUCY01cZwIbDAAKCRAAbbwGJAc6b+McAP0YBPv9FosKyFgs3U6s0qMo
+N3g20mHcnzK8Tn0d2CVXNgD/f0UuMeTNQNaobmKgncX3WxOTRCdU8gq7fTmADuYT
+iAO4MwRjTVy3FgkrBgEEAdpHDwEBB0Bx2L7vLC1K+RiWmabLcCLceC0QxOdSc200
+O1OQh8UC6IjvBBgWCgAgFiEEX/tXmslvesUot/ERAG28BiQHOm8FAmNNXLcCGwIA
+gQkQAG28BiQHOm92IAQZFgoAHRYhBA+V/kMZRcRdXvBI7T3N12g4djR7BQJjTVy3
+AAoJED3N12g4djR74aUA/RQP7b+0lNt39cSfFnL0VQkSIdcM0JIA6ynawRX3V4T5
+AP4l3fmaSbO8ZC2LtDe+UGCSVhe/elgP2eA2Vccb+pQYAYZzAP0ZJpSU/kFKFZ6j
+H1iUqh7uIRRtO/naCz74TFDCo7uT9gD8DaJb77iBCbbMLXKYaH3YEJ3fPyWI2Nxz
+sD1c8xC3wQe4OARjTV2HEgorBgEEAZdVAQUBAQdAJKnKmi5LCwVhpS8pnJPPav0T
+LFnNQqZyNbGGntB/LToDAQgHiHgEGBYKACAWIQRf+1eayW96xSi38REAbbwGJAc6
+bwUCY01dhwIbDAAKCRAAbbwGJAc6b13yAQDuqCmCOKho7sNL6ZCBTWc3oKcUFCt+
+tj41sXPYwMqSowD+JbpNaR0TCo0p7K4fVzZ80/qoTaYubwcI+Cp57AqK1gC4MwRj
+TV2oFgkrBgEEAdpHDwEBB0AVh/XLcWJIxjr1lawAyOmXAjSzLtnp4GcvbEPTiuhm
+wIh4BBgWCgAgFiEEX/tXmslvesUot/ERAG28BiQHOm8FAmNNXagCGyAACgkQAG28
+BiQHOm9v+QEA2yWiLTFSefFPs1z+PxfXSYdZc6AYnqDVGsGKTL2X3jYA/RisMLoZ
+Z+KhSwIFvR9IoUerHq2WfDbkmkUfUiFnXAID
+=217r
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/comm/mail/test/browser/openpgp/data/keys/untweaked-secret.asc b/comm/mail/test/browser/openpgp/data/keys/untweaked-secret.asc
new file mode 100644
index 0000000000..0be1a35ff8
--- /dev/null
+++ b/comm/mail/test/browser/openpgp/data/keys/untweaked-secret.asc
@@ -0,0 +1,15 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+xYYEZXNJrhYJKwYBBAHaRw8BAQdAwMIRYaiBLlSzWaTOvX4YpQoJ/I8TSQUDjC0zw7frs5H+CQMI
+Na6GCdd3/p7/KfGebtqCVkavU4e+IYcKBLBGC/G+dyeVphQDH0P2IYtyVbKZdtKEEtpjAP7qSc6t
+M1n1Mpb42m7oLW4RaNENERnWh4drXM0pVW50d2Vha2VkIEVDQyA8dW50d2Vha2VkLWVjY0BleGFt
+cGxlLmNvbT7CiwQTFggAMxYhBEkpZab1ba0kI7NQboSfKbACBwf3BQJlc0muAhsDBQsJCAcCBhUI
+CQoLAgUWAgMBAAAKCRCEnymwAgcH9+Q8AQDqLxLTGc/3UrK23CtVc96WAV7tltj7KKRkUugkBp4H
+MgEAogcAHKOL0BVfZvP6dNsivYnzwQ+ag+9zIHA+sFABzAXHiwRlc0mvEgorBgEEAZdVAQUBAQdA
+ePxMSOnzYXwXII1LGdjTMqx3tCAHbtnLlkV/ZJ1xkTUDAQgH/gkDCHDqhB15/mtK/4WDct+GhyRo
+j7o5YZcyVQ6tybRH5Eh+iGaM3bfYqy4ZRYXPkSFzkdS7NRZ1XljmdljZ6YTZV2/k9Hjhfg0VxI8N
+dC32ysjCeAQYFggAIBYhBEkpZab1ba0kI7NQboSfKbACBwf3BQJlc0mvAhsMAAoJEISfKbACBwf3
+OAAA/3y4RqOyBuQ+ikiPs0QLNNK7ViDZFmgHPPKIAqTa3lRSAP9NTe08wQK6XhT8St0IXxBxKcLf
+2K4znVqxoGrOEFZjDA==
+=0rDW
+-----END PGP PRIVATE KEY BLOCK-----