aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/test/resources
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2015-06-11 00:05:13 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2015-06-11 00:05:13 +0200
commitd16b09b2a6be41319b993c27e69b85067a7f1c46 (patch)
tree78deb6554f9bd5f3505adb39bfbbd10e692dab9e /OpenKeychain/src/test/resources
parent05fcbcae7b816e72363030d499a43e0e6042b320 (diff)
downloadopen-keychain-d16b09b2a6be41319b993c27e69b85067a7f1c46.tar.gz
open-keychain-d16b09b2a6be41319b993c27e69b85067a7f1c46.tar.bz2
open-keychain-d16b09b2a6be41319b993c27e69b85067a7f1c46.zip
Use new officially supported way for local unit tests, many dependencies upgraded for this, temporary disabled separate debug builds
Diffstat (limited to 'OpenKeychain/src/test/resources')
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/COPYING13
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/README26
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000001-006.public_keybin0 -> 171 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000002-013.user_id1
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000003-002.sigbin0 -> 113 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000004-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000005-002.sigbin0 -> 113 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000006-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000007-002.sigbin0 -> 220 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000008-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000009-002.sigbin0 -> 158 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000010-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000011-002.sigbin0 -> 96 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000012-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000013-014.public_subkeybin0 -> 171 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000014-002.sigbin0 -> 195 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000015-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000016-006.public_keybin0 -> 1201 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000017-002.sigbin0 -> 123 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000018-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000019-013.user_id1
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000020-002.sigbin0 -> 130 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000021-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000022-002.sigbin0 -> 186 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000023-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000024-014.public_subkeybin0 -> 608 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000025-002.sigbin0 -> 105 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000026-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000027-006.public_keybin0 -> 421 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000028-002.sigbin0 -> 99 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000029-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000030-013.user_id1
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000031-002.sigbin0 -> 132 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000032-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000033-002.sigbin0 -> 96 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000034-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000035-006.public_keybin0 -> 143 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000036-013.user_id1
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000037-002.sigbin0 -> 192 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000038-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000039-002.sigbin0 -> 72 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000040-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000041-017.attributebin0 -> 1761 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000042-002.sigbin0 -> 192 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000043-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000044-014.public_subkeybin0 -> 272 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000045-002.sigbin0 -> 161 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000046-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000047-005.secret_keybin0 -> 610 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000048-013.user_id1
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000049-002.sigbin0 -> 220 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000050-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000051-007.secret_subkeybin0 -> 611 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000052-002.sigbin0 -> 195 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000053-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000054-005.secret_keybin0 -> 1275 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000055-002.sigbin0 -> 123 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000056-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000057-013.user_id1
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000058-002.sigbin0 -> 130 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000059-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000060-007.secret_subkeybin0 -> 698 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000061-002.sigbin0 -> 104 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000062-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000063-005.secret_keybin0 -> 484 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000064-002.sigbin0 -> 99 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000065-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000066-013.user_id1
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000067-002.sigbin0 -> 106 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000068-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000069-005.secret_keybin0 -> 513 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000070-013.user_id1
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000071-002.sigbin0 -> 192 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000072-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000073-017.attributebin0 -> 1761 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000074-002.sigbin0 -> 192 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000075-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000076-007.secret_subkeybin0 -> 961 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000077-002.sigbin0 -> 161 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000078-012.ring_trustbin0 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/002182-002.sigbin0 -> 363 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000005-002.sigbin0 -> 1089 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000017-002.sigbin0 -> 1089 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-bzip2.gpgbin0 -> 442 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-zlib.gpgbin0 -> 322 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig.gpgbin0 -> 324 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/onepass_sigbin0 -> 15 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/pubring.gpgbin0 -> 179272 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/secring.gpgbin0 -> 9329 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/symmetrically_encryptedbin0 -> 528 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa-sha384.txt.gpgbin0 -> 150 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa.gpgbin0 -> 150 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-rsa.gpgbin0 -> 236 bytes
-rw-r--r--OpenKeychain/src/test/resources/public-key-canonicalize.blobbin0 -> 1224 bytes
-rw-r--r--OpenKeychain/src/test/resources/public-key-for-sample.blobbin0 -> 35198 bytes
-rw-r--r--OpenKeychain/src/test/resources/sample-altered.txt26
-rw-r--r--OpenKeychain/src/test/resources/sample.txt26
-rw-r--r--OpenKeychain/src/test/resources/test-keys/bad_user_id_encoding.asc60
-rw-r--r--OpenKeychain/src/test/resources/test-keys/broken_cert_version.asc17
-rw-r--r--OpenKeychain/src/test/resources/test-keys/cooperpair/9E669861368BCA0BE42DAF7DDDA252EBB8EBE1AF.asc29
-rw-r--r--OpenKeychain/src/test/resources/test-keys/cooperpair/A55120427374F3F7AA5F1166DDA252EBB8EBE1AF.asc29
-rw-r--r--OpenKeychain/src/test/resources/test-keys/cooperpair/readme3
-rw-r--r--OpenKeychain/src/test/resources/test-keys/divert_to_card_sec.asc44
-rw-r--r--OpenKeychain/src/test/resources/test-keys/mailvelope_07_no_key_flags.asc20
-rw-r--r--OpenKeychain/src/test/resources/test-keys/stripped_flags.asc60
-rw-r--r--OpenKeychain/src/test/resources/test-keys/symantec_public.asc37
-rw-r--r--OpenKeychain/src/test/resources/test-keys/symantec_secret.asc46
107 files changed, 444 insertions, 0 deletions
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/COPYING b/OpenKeychain/src/test/resources/OpenPGP-Haskell/COPYING
new file mode 100644
index 000000000..55234e7a0
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/COPYING
@@ -0,0 +1,13 @@
+Copyright © 2011, Stephen Paul Weber <singpolyma.net>
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/README b/OpenKeychain/src/test/resources/OpenPGP-Haskell/README
new file mode 100644
index 000000000..cff696c83
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/README
@@ -0,0 +1,26 @@
+These test files were copied from the OpenPGP Haskell project.
+
+
+
+Original README
+===============
+
+This is an OpenPGP library inspired by my work on OpenPGP libraries in
+Ruby <https://github.com/singpolyma/openpgp>,
+PHP <http://github.com/singpolyma/openpgp-php>,
+and Python <https://github.com/singpolyma/OpenPGP-Python>.
+
+It defines types to represent OpenPGP messages as a series of packets
+and then defines instances of Data.Binary for each to facilitate
+encoding/decoding.
+
+For performing cryptography, see
+<http://hackage.haskell.org/package/openpgp-crypto-api> or
+<http://hackage.haskell.org/package/openpgp-Crypto>
+
+For dealing with ASCII armor, see
+<http://hackage.haskell.org/package/openpgp-asciiarmor>
+
+It is intended that you use qualified imports with this library.
+
+> import qualified Data.OpenPGP as OpenPGP
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000001-006.public_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000001-006.public_key
new file mode 100644
index 000000000..7cbab1782
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000001-006.public_key
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000002-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000002-013.user_id
new file mode 100644
index 000000000..759449bb4
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000002-013.user_id
@@ -0,0 +1 @@
+´$Test Key (RSA) <testkey@example.org> \ No newline at end of file
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000003-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000003-002.sig
new file mode 100644
index 000000000..1e0656d27
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000003-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000004-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000004-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000004-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000005-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000005-002.sig
new file mode 100644
index 000000000..108b99842
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000005-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000006-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000006-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000006-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000007-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000007-002.sig
new file mode 100644
index 000000000..14276d0a5
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000007-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000008-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000008-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000008-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000009-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000009-002.sig
new file mode 100644
index 000000000..4a282dd68
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000009-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000010-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000010-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000010-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000011-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000011-002.sig
new file mode 100644
index 000000000..cae1b7391
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000011-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000012-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000012-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000012-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000013-014.public_subkey b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000013-014.public_subkey
new file mode 100644
index 000000000..08676d067
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000013-014.public_subkey
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000014-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000014-002.sig
new file mode 100644
index 000000000..dd601807f
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000014-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000015-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000015-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000015-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000016-006.public_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000016-006.public_key
new file mode 100644
index 000000000..c9dccbf1e
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000016-006.public_key
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000017-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000017-002.sig
new file mode 100644
index 000000000..e734505a7
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000017-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000018-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000018-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000018-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000019-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000019-013.user_id
new file mode 100644
index 000000000..ab3f51d91
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000019-013.user_id
@@ -0,0 +1 @@
+´$Test Key (DSA) <testkey@example.com> \ No newline at end of file
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000020-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000020-002.sig
new file mode 100644
index 000000000..8588489a7
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000020-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000021-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000021-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000021-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000022-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000022-002.sig
new file mode 100644
index 000000000..fefcb5fea
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000022-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000023-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000023-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000023-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000024-014.public_subkey b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000024-014.public_subkey
new file mode 100644
index 000000000..2e8deea28
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000024-014.public_subkey
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000025-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000025-002.sig
new file mode 100644
index 000000000..a3eea0a20
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000025-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000026-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000026-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000026-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000027-006.public_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000027-006.public_key
new file mode 100644
index 000000000..5817e0037
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000027-006.public_key
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000028-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000028-002.sig
new file mode 100644
index 000000000..5194b7840
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000028-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000029-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000029-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000029-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000030-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000030-013.user_id
new file mode 100644
index 000000000..fb3f49e0d
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000030-013.user_id
@@ -0,0 +1 @@
+´+Test Key (DSA sign-only) <test@example.net> \ No newline at end of file
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000031-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000031-002.sig
new file mode 100644
index 000000000..f69f6875b
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000031-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000032-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000032-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000032-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000033-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000033-002.sig
new file mode 100644
index 000000000..2bb55d4fe
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000033-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000034-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000034-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000034-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000035-006.public_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000035-006.public_key
new file mode 100644
index 000000000..5980638c4
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000035-006.public_key
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000036-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000036-013.user_id
new file mode 100644
index 000000000..5d0d46e5d
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000036-013.user_id
@@ -0,0 +1 @@
+´.Test Key (RSA sign-only) <testkey@example.net> \ No newline at end of file
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000037-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000037-002.sig
new file mode 100644
index 000000000..833b563b2
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000037-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000038-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000038-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000038-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000039-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000039-002.sig
new file mode 100644
index 000000000..89c34fa5d
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000039-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000040-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000040-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000040-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000041-017.attribute b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000041-017.attribute
new file mode 100644
index 000000000..a21a82fb1
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000041-017.attribute
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000042-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000042-002.sig
new file mode 100644
index 000000000..fc6267fd0
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000042-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000043-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000043-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000043-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000044-014.public_subkey b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000044-014.public_subkey
new file mode 100644
index 000000000..06bf50e4f
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000044-014.public_subkey
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000045-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000045-002.sig
new file mode 100644
index 000000000..336eb0f24
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000045-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000046-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000046-012.ring_trust
new file mode 100644
index 000000000..ffa57e57a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000046-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000047-005.secret_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000047-005.secret_key
new file mode 100644
index 000000000..77b5d428a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000047-005.secret_key
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000048-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000048-013.user_id
new file mode 100644
index 000000000..759449bb4
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000048-013.user_id
@@ -0,0 +1 @@
+´$Test Key (RSA) <testkey@example.org> \ No newline at end of file
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000049-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000049-002.sig
new file mode 100644
index 000000000..14276d0a5
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000049-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000050-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000050-012.ring_trust
new file mode 100644
index 000000000..b1eeabb95
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000050-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000051-007.secret_subkey b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000051-007.secret_subkey
new file mode 100644
index 000000000..b4e65c92f
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000051-007.secret_subkey
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000052-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000052-002.sig
new file mode 100644
index 000000000..dd601807f
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000052-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000053-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000053-012.ring_trust
new file mode 100644
index 000000000..b1eeabb95
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000053-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000054-005.secret_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000054-005.secret_key
new file mode 100644
index 000000000..f153e5932
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000054-005.secret_key
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000055-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000055-002.sig
new file mode 100644
index 000000000..e734505a7
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000055-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000056-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000056-012.ring_trust
new file mode 100644
index 000000000..b1eeabb95
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000056-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000057-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000057-013.user_id
new file mode 100644
index 000000000..ab3f51d91
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000057-013.user_id
@@ -0,0 +1 @@
+´$Test Key (DSA) <testkey@example.com> \ No newline at end of file
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000058-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000058-002.sig
new file mode 100644
index 000000000..8588489a7
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000058-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000059-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000059-012.ring_trust
new file mode 100644
index 000000000..b1eeabb95
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000059-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000060-007.secret_subkey b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000060-007.secret_subkey
new file mode 100644
index 000000000..9df45f395
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000060-007.secret_subkey
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000061-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000061-002.sig
new file mode 100644
index 000000000..639494223
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000061-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000062-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000062-012.ring_trust
new file mode 100644
index 000000000..b1eeabb95
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000062-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000063-005.secret_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000063-005.secret_key
new file mode 100644
index 000000000..2f4268ee1
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000063-005.secret_key
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000064-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000064-002.sig
new file mode 100644
index 000000000..5194b7840
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000064-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000065-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000065-012.ring_trust
new file mode 100644
index 000000000..b1eeabb95
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000065-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000066-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000066-013.user_id
new file mode 100644
index 000000000..fb3f49e0d
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000066-013.user_id
@@ -0,0 +1 @@
+´+Test Key (DSA sign-only) <test@example.net> \ No newline at end of file
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000067-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000067-002.sig
new file mode 100644
index 000000000..d354e79df
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000067-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000068-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000068-012.ring_trust
new file mode 100644
index 000000000..b1eeabb95
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000068-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000069-005.secret_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000069-005.secret_key
new file mode 100644
index 000000000..17a2c354d
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000069-005.secret_key
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000070-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000070-013.user_id
new file mode 100644
index 000000000..5d0d46e5d
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000070-013.user_id
@@ -0,0 +1 @@
+´.Test Key (RSA sign-only) <testkey@example.net> \ No newline at end of file
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000071-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000071-002.sig
new file mode 100644
index 000000000..833b563b2
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000071-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000072-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000072-012.ring_trust
new file mode 100644
index 000000000..b1eeabb95
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000072-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000073-017.attribute b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000073-017.attribute
new file mode 100644
index 000000000..a21a82fb1
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000073-017.attribute
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000074-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000074-002.sig
new file mode 100644
index 000000000..fc6267fd0
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000074-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000075-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000075-012.ring_trust
new file mode 100644
index 000000000..b1eeabb95
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000075-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000076-007.secret_subkey b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000076-007.secret_subkey
new file mode 100644
index 000000000..b380339a4
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000076-007.secret_subkey
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000077-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000077-002.sig
new file mode 100644
index 000000000..336eb0f24
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000077-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000078-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000078-012.ring_trust
new file mode 100644
index 000000000..b1eeabb95
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000078-012.ring_trust
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/002182-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/002182-002.sig
new file mode 100644
index 000000000..2bc6679f4
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/002182-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000005-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000005-002.sig
new file mode 100644
index 000000000..94055af66
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000005-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000017-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000017-002.sig
new file mode 100644
index 000000000..b22f23b91
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000017-002.sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-bzip2.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-bzip2.gpg
new file mode 100644
index 000000000..87539dbe8
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-bzip2.gpg
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-zlib.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-zlib.gpg
new file mode 100644
index 000000000..4da4dfa99
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-zlib.gpg
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig.gpg
new file mode 100644
index 000000000..dd617de13
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig.gpg
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/onepass_sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/onepass_sig
new file mode 100644
index 000000000..87b2895ea
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/onepass_sig
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/pubring.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/pubring.gpg
new file mode 100644
index 000000000..a1519ee74
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/pubring.gpg
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/secring.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/secring.gpg
new file mode 100644
index 000000000..13598756a
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/secring.gpg
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/symmetrically_encrypted b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/symmetrically_encrypted
new file mode 100644
index 000000000..129155aa2
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/symmetrically_encrypted
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa-sha384.txt.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa-sha384.txt.gpg
new file mode 100644
index 000000000..39828fcae
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa-sha384.txt.gpg
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa.gpg
new file mode 100644
index 000000000..97e7a267b
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa.gpg
Binary files differ
diff --git a/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-rsa.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-rsa.gpg
new file mode 100644
index 000000000..7ae453da6
--- /dev/null
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-rsa.gpg
Binary files differ
diff --git a/OpenKeychain/src/test/resources/public-key-canonicalize.blob b/OpenKeychain/src/test/resources/public-key-canonicalize.blob
new file mode 100644
index 000000000..3450824c1
--- /dev/null
+++ b/OpenKeychain/src/test/resources/public-key-canonicalize.blob
Binary files differ
diff --git a/OpenKeychain/src/test/resources/public-key-for-sample.blob b/OpenKeychain/src/test/resources/public-key-for-sample.blob
new file mode 100644
index 000000000..4aa91510b
--- /dev/null
+++ b/OpenKeychain/src/test/resources/public-key-for-sample.blob
Binary files differ
diff --git a/OpenKeychain/src/test/resources/sample-altered.txt b/OpenKeychain/src/test/resources/sample-altered.txt
new file mode 100644
index 000000000..458821f81
--- /dev/null
+++ b/OpenKeychain/src/test/resources/sample-altered.txt
@@ -0,0 +1,26 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+This is a simple text document, which is used to illustrate
+the concept of signing simple text files. There are no
+control characters or special formatting commands in this
+text, just simple printable ASCII characters.
+MALICIOUS TEXT
+To make this a slightly less uninteresting document, there
+follows a short shopping list.
+
+ eggs, 1 doz
+ milk, 1 gal
+ bacon, 1 lb
+ olive oil
+ bread, 1 loaf
+
+That's all there is to this document.
+
+-----BEGIN PGP SIGNATURE-----
+Version: PGPfreeware 5.5.5 for non-commercial use <http://www.nai.com>
+
+iQA/AwUBN78ib3S9RCOKzj55EQKqDACg1NV2/iyPKrDlOVJvJwz6ArcQ0UQAnjNC
+CDxKAFyaaGa835l1vpbFkAJk
+=3r/N
+-----END PGP SIGNATURE-----
diff --git a/OpenKeychain/src/test/resources/sample.txt b/OpenKeychain/src/test/resources/sample.txt
new file mode 100644
index 000000000..c0065f78d
--- /dev/null
+++ b/OpenKeychain/src/test/resources/sample.txt
@@ -0,0 +1,26 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+This is a simple text document, which is used to illustrate
+the concept of signing simple text files. There are no
+control characters or special formatting commands in this
+text, just simple printable ASCII characters.
+
+To make this a slightly less uninteresting document, there
+follows a short shopping list.
+
+ eggs, 1 doz
+ milk, 1 gal
+ bacon, 1 lb
+ olive oil
+ bread, 1 loaf
+
+That's all there is to this document.
+
+-----BEGIN PGP SIGNATURE-----
+Version: PGPfreeware 5.5.5 for non-commercial use <http://www.nai.com>
+
+iQA/AwUBN78ib3S9RCOKzj55EQKqDACg1NV2/iyPKrDlOVJvJwz6ArcQ0UQAnjNC
+CDxKAFyaaGa835l1vpbFkAJk
+=3r/N
+-----END PGP SIGNATURE-----
diff --git a/OpenKeychain/src/test/resources/test-keys/bad_user_id_encoding.asc b/OpenKeychain/src/test/resources/test-keys/bad_user_id_encoding.asc
new file mode 100644
index 000000000..332747f84
--- /dev/null
+++ b/OpenKeychain/src/test/resources/test-keys/bad_user_id_encoding.asc
@@ -0,0 +1,60 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: SKS 1.1.5
+Comment: Hostname: keyserver.codinginfinity.com
+
+mQGiBDhOth4RBADOAh3T2bWx+os6LBE+C55EBykg2WdC5AOnRe457ro5X1YuhZomY31hcxvH
+m+hro4Lh43SP2xTcyAz4G2UcLJch9qdgJ7W32wb+kOyEi/WTkfLpU2OiXRS975euqex4kARK
+l2alJfmu8FI4p1WinbGDDPyb6DyiqhW3KP/i3ukQwQCg/zOQEvnI0RgHwFSi1V+dvvCR5ZUD
+/0WCch+cD8Aje0EUtztBx2DL/JKXRA0B/9jivwd/QgQy2hIYYXL5+OFrRBWcpPNFKqhZLyXn
+82OEaZZpJGHEpfGeb8uHZ3fv8NTaPxNGwYx99AwiOVatNX88gCnlQ2ZBWQuuN1rrK/oKduPK
+35yZbNSR3nT8fJsWg/+h1L2eB00qA/0cgovkdYnjVzq3ztt43jXQEzrZzYMRJCK9q1CYSeZ4
+g/zjFwCROgQoVnVcLYfJDCJWM/3zJvlqfgGikhKcT4UepGadLD0ACJ9gchsc0Zrx+gUlgr/K
+aWGdRh+j4i5ykc0HNO/TFo5ESBBrGx3WtyxI1ob+2MAH8RAa18HZq2M1irQgQ2xhdXMgRnJh
+ZW5rZWwgPGFsaWVuQG9ubGluZS5kZT6IRgQQEQIABgUCOFQy1gAKCRA81crJrp6K4xFhAJ93
+JV8PJRdgcHrLrlgKrG9zSpjqRQCgvbImT0pBuZIj058FoklOw7OiBjaISwQQEQIACwUCOE62
+7AQLAwIBAAoJELXPGfg2YSW2elEAn1hrbuR8/I3/OBxReVor0wzQ3tYTAJ44UFUL3VmHweHB
+t+kfPDVl93bMY7QiQ2xhdXMgRnJhZW5rZWwgPGNmcmFlbmtlbEBnbXgubmV0PohGBBARAgAG
+BQI4VDKRAAoJEDzVysmunorjI3AAn2nfyP1nsRpSMzPs8Vm+KUyvTY68AJ9q3evrzGG1Qbtl
+VZgtcbprQKnaX4hGBBARAgAGBQI6uRZFAAoJEDxoxauoLKe5e6sAn3ZDhTsVaNOgFrpzNZQ6
+meeoJTjgAKDdSqyUit+pSzK//pqEdKJUJ2N93ohGBBARAgAGBQI8Niv5AAoJEIPL/xBv5hfH
+GgEAoKMcltZIsfaagIV86tlQsETsleJeAJ9Puwxt/n455EQWHkAQz109noNIVIhLBBARAgAL
+BQI4TrYeBAsDAgEACgkQtc8Z+DZhJbbveQCfUOPT34HElA7KEPTchx4/nBINqKAAoMIk8G+r
+UFzHJo3w7mjeS2OEHCoutCJDbGF1cyBGcmFlbmtlbCA8Y2ZyYWVua2VsQHVzYS5uZXQ+iEYE
+EBECAAYFAjhUMp4ACgkQPNXKya6eiuMuqgCg1WcZAJYFF3/jUA85GJ4BVLdQkpsAoK37bsBz
+tvhUQE/dObJduMsK9462iEsEEBECAAsFAjhOtj4ECwMCAQAKCRC1zxn4NmElts+/AKD9cnve
+ShBQe95eF98yomHFJ8CgHQCfTNyhyJgLhTfYd2wI8jrTePr2zhi0JENsYXVzIEZyYWVua2Vs
+IDxjY19mYXN0amFja0BnbXgubmV0PohGBBARAgAGBQI4VDKsAAoJEDzVysmunorj2mEAoLf9
+yqSFRla7rfVSD2cTSozHrGt4AJ9L4VDELJjDoaTC0ZTxwuVaSPxSxIhLBBARAgALBQI4TrZZ
+BAsDAgEACgkQtc8Z+DZhJbZC2gCgvjEKlK22N+RSKbPEN4XyjrNLh3QAoPVHXqRght5VG3+k
+XzA/zDYWQ+/2tDBDbGF1cyBGcmFlbmtlbCA8ZmFzdGphY2tAaGFsaWZheC5yd3RoLWFhY2hl
+bi5kZT6IRgQQEQIABgUCOFQyyQAKCRA81crJrp6K41yrAKDrCcfzexdQCDFtfbxuwyeUibST
+zgCbBGPP4qeXfAf0l07kY5Of1/PyniiISwQQEQIACwUCOE62uwQLAwIBAAoJELXPGfg2YSW2
+nhoAnRu89DXOd1zOUagpwcqLmj542JwOAKDhN736B2Zd9xtxaw2mT46Qu6YTULQ1Q2xhdXMg
+RnJhZW5rZWwgPENsYXVzLkZy5G5rZWxAaGFsaWZheC5yd3RoLWFhY2hlbi5kZT6IRgQQEQIA
+BgUCOFQy6QAKCRA81crJrp6K47VGAKDvlogjYHaN6t650M6CteLCXh5SqQCghfGa7tk327WE
+St4WER8cXbADd62ISwQQEQIACwUCOE63LwQLAwIBAAoJELXPGfg2YSW2FuUAmQGG/lfpeNad
+fgB61x37ugaFgE9oAJ0QgfdXhalOPRjHnBksxYzzrWFCVLkEDQQ4TrYeEBAA+RigfloGYXpD
+kJXcBWyHhuxh7M1FHw7Y4KN5xsncegus5D/jRpS2MEpT13wCFkiAtRXlKZmpnwd00//jocWW
+IE6YZbjYDe4QXau2FxxR2FDKIldDKb6V6FYrOHhcC9v4TE3V46pGzPvOF+gqnRRh44SpT9GD
+hKh5tu+Pp0NGCMbMHXdXJDhK4sTw6I4TZ5dOkhNh9tvrJQ4X/faY98h8ebByHTh1+/bBc8SD
+ESYrQ2DD4+jWCv2hKCYLrqmus2UPogBTAaB81qujEh76DyrOH3SET8rzF/OkQOnX0ne2Qi0C
+NsEmy2henXyYCQqNfi3t5F159dSST5sYjvwqp0t8MvZCV7cIfwgXcqK61qlC8wXo+VMROU+2
+8W65Szgg2gGnVqMU6Y9AVfPQB8bLQ6mUrfdMZIZJ+AyDvWXpF9Sh01D49Vlf3HZSTz09jdvO
+meFXklnN/biudE/F/Ha8g8VHMGHOfMlm/xX5u/2RXscBqtNbno2gpXI61Brwv0YAWCvl9Ij9
+WE5J280gtJ3kkQc2azNsOA1FHQ98iLMcfFstjvbzySPAQ/ClWxiNjrtVjLhdONM0/XwXV0Oj
+HRhs3jMhLLUq/zzhsSlAGBGNfISnCnLWhsQDGcgHKXrKlQzZlp+r0ApQmwJG0wg9ZqRdQZ+c
+fL2JSyIZJrqrol7DVes91hcAAgIQAIbS27fz+cIoDbWDQ4UhfHFGqPK51uixRfw2fIWmXsV0
+yFChqjaPRieERsP4Y26IGL7jB+yr+Q8fNp+YcevH2YWluMcXAZMXkEMi8Lvz9lDUVZxrgILm
+ZHyBycHXXhn8mFZJufUnn33cr8JC/6D+QBHdF1lly40s1877Om10W14bHTo1SBNN7PoAO/fC
+w+GL0QEIK3iTqEI+bEs+vxLqBKZa1+NkKg/s5L6OXMgBTFuXqZvzWAHLK7wR1QT3DgKgY4go
+YZeJkSzGmmQkZRCVBLZ0MQx1x6CiqMI9VN/5/7h5jA7QuhXhHZHuNmucITU05wHQty2yOH+D
+nWsPCcWRjaXVe0pFqD6pJGBZB58B1N/7uGdn+PkR3TSDOt9IdXqWoY/dvLNc38uoL31FXko8
+ITwzua5LzwGhjwYoNiM31Cehx/zfzzLsQlzIvVjgdNX4rZcMTfi3cJ/RkVue2bOlrRSvCCzk
+58lW+3PsHJ/Rk4yGngOimEK1okcjgSrVQamuK1kG0aKKv//ql1Ehd0WibKZTlq/n644Yb3Yd
+HrVXK2JhdJ1opTmYHbGDS9rE6HUc+cq9DsL4ZZDHwPnsi5FXtjCs3q3k5d2y9P1szFgVXm54
+vNbolRY2J3/shMf0382KfyVNWLjqlC1DEtxNP+Xfk9XJsBe+PD3ClLfbPxG989BJiEYEGBEC
+AAYFAjhOth4ACgkQtc8Z+DZhJbZvegCeJEWNkQYaPDTAx19s+GBBZJo1K6AAmwc006dQTrDf
+ykezF64bvFWd+vuO
+=5FoN
+-----END PGP PUBLIC KEY BLOCK-----
+
diff --git a/OpenKeychain/src/test/resources/test-keys/broken_cert_version.asc b/OpenKeychain/src/test/resources/test-keys/broken_cert_version.asc
new file mode 100644
index 000000000..e2d2abd8e
--- /dev/null
+++ b/OpenKeychain/src/test/resources/test-keys/broken_cert_version.asc
@@ -0,0 +1,17 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQENBFSl5DIBCADqsGJJ8RhV4Uw6a3Q48QyTMrUtvZquOTlLVaqOdEFZNL5/OBal
+prft9LNkcOkIVA89Hdn715WwkmG2OJiJoQ/ZAKwal1CPGm4Q8kZIM7k57ISJL6J5
+300e7UIznc74XbG7eFNxNcjCM9wG12vW2rFwc+ogJtkBSf0IXukPwtUkRK+H5ufO
+lpqS5NNZfiGbNQCrb+YsGZNRk4QTGR6WGyaIRHlcG8G00VPGNSauTqe/11MO9MoF
+BvPgFeur3nefWunCQ+uDmzIEs8r94gaHu3LWbctd5w5x/o/PDfTSSiO+U8zzXrKC
+4ZpEl5bk7t7jH1hYMLWyO6nn0vWTOMO1EYLBABEBAAG0GGJyb2tlbiBzaWduYXR1
+cmUgdmVyc2lvbokBOMATAQIAIgUCVKXkMgIbAwYLCQgHAwIGFQgCCQoLBBYCAwEC
+HgECF4AACgkQDe00lH/2SnprLggAh64TsdHDfIhTNc1DeJLCuvuHsitAcUdEEnue
+yJjodxboKNSplIwnmb5CpM3P8f736dNaW77Yd6aO4IeAy6cBlxT1tSRkJMsp+cBt
+kBa3lRr+GnWZlLZs3coL2g0t5RbuyYKyQxm2qvgFJGi/7Qfty5nJOW5U1ElT3VT8
+jISNdQdDAIaBsCE+TuyW3VsP3PqnJ7x14K7VhkFuCyvYB9paLcJBnan93R0Ja0Ip
+Cv1pbrNxXp0UELf0RYc2X5C1m6otZ9LKf3PmzxlEkApkb1TZUEBak2Za5p99koZT
++pg/XpZPyawi+gZeYkBAohxRGmzG/a4L+YacAZHbchfN0eG7lg==
+=mxTR
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/OpenKeychain/src/test/resources/test-keys/cooperpair/9E669861368BCA0BE42DAF7DDDA252EBB8EBE1AF.asc b/OpenKeychain/src/test/resources/test-keys/cooperpair/9E669861368BCA0BE42DAF7DDDA252EBB8EBE1AF.asc
new file mode 100644
index 000000000..4f51252da
--- /dev/null
+++ b/OpenKeychain/src/test/resources/test-keys/cooperpair/9E669861368BCA0BE42DAF7DDDA252EBB8EBE1AF.asc
@@ -0,0 +1,29 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1
+
+mQINBFJtd/UBEACpw/psXoGNM8RHczviD7FnGdjMQPEJQ+nuWQ2AEGYouulg5hFv
+0ChuSQVLiqQht2k5K2liyW1MeXoJ8tr9nSn/Zi9nttc0Wo6K7pvrDD40r2HNg305
+qLCzItr5st3x8cq2cIXvN4LOm2rqpBLZ/sqMmNiW2Y7/aAQqV1xtR35joHqamWHD
+UPOmzBMs07YSUjXgC1EMx8kWQSV6cuARj93kxWj8R6eoYHHfrWCEGR313wov6QST
+zIfVU7FqQqOmdLW3LaPHxcrI/TjsnkUN99qdlpjJH/YW925LDPJHAkliqPP5AvhU
+F9KbY2F8mcIZBCDd8TH+xXynuN3BbIU4kCwVbdx/tcpO1npuJcKB1Go/udyow/Ei
+Z3nHzJsCVkezvopek77wnwPaP0nAb7f4iIY3gJCoGirOx6N075TgF6MBe00q9oFE
+y4rvnUnU9/QzOOes95eUMhM+9eK1cuLFEV5t47DfxRdq+fQip3FJ2l6v19sZvQ0G
+j06pjYqg0of273rG8oXcDrFjb1Zqhj8x1mLl6u7d/ide5wTm9HylBWcYKQjIJJAi
+WIScxEPIOINDJKgsKTuKtoyNvISJ3xUeS1yzxiIb3YGLIyPgFFx0vFyqJfbkXq70
+m1n2xnJlkTidfzbZvc6EA7vRGSDYK6FqqhlGhc7UypUEVW8FM/jZNAOS6QARAUGt
+tCg5RTY2OTg2MTM2OEJDQTBCRTQyREFGN0REREEyNTJFQkI4RUJFMUFGiQI3BBMB
+CgAhBQJSg/uTAhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEN2iUuu46+Gv
++Z0P+wQhkLwm+WGcEsS98Lei9O7hit/k4g/VkLUUQV7BOR3n8uRZIFkdOtpvrFU3
+aKf246uCy6GM48Oh+1U2cv5InX/WEuKaFo5uF6t79wyt18BUn1weDcU+DQdOSG4f
+fSnNa55wkN0l0svW4fGIthjmDTz6HZFntYD+9A20wZAqpPIs+vyG9Jp+e9E9Y/W/
+EFQbNlxHHb9+BMT2+DtNP+HSl3MPFlQPKOLZxyLAU5uzT0Sa0LxhrQy5FgkW6Jog
+sbAJVM9z0pZw+grzGPciM66ZW1rxeICvbYsdWLytRjqxpY8GS8XudyseUGd+dZim
+ptarsrE5yfSMg2gW5Z1PTc0tEMXJLUwtpyzQjpFpbb7dPuo2TUp09LgZKX63WCbS
+Nb1RTaGfkeYudOTo2rh4Jfg+Tb/JRpO6clo0rxAq8nPH2WmG+9TB8Zbb7YRzGWuV
+/e5SeVNR+zY8tXZKnmUIH1HIprc+BtT6Bupdvd0CT14Mg9MmsFvUXofwHLa4gahr
+8/iG9y3uHSA6Rhz++yOpyOmNvO1LDxsYNaRCIXQJbqgNwF5YNYlMPsEeY/CG7FOb
+Afv7rHiYtRRQfz2P4OF900DJO7QL9gdNXJ1+Hajy/5Lvvl7qwqMG4GvVQEsgFc5O
+jjFCUhE2i20j2kEMxvA5RLBH/fOoGARn87tiKSfb+pqLNZQb
+=fDJ8
+-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file
diff --git a/OpenKeychain/src/test/resources/test-keys/cooperpair/A55120427374F3F7AA5F1166DDA252EBB8EBE1AF.asc b/OpenKeychain/src/test/resources/test-keys/cooperpair/A55120427374F3F7AA5F1166DDA252EBB8EBE1AF.asc
new file mode 100644
index 000000000..549bc51a2
--- /dev/null
+++ b/OpenKeychain/src/test/resources/test-keys/cooperpair/A55120427374F3F7AA5F1166DDA252EBB8EBE1AF.asc
@@ -0,0 +1,29 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1
+
+mQINBFKD+38BEADSv5l4xOx9hCRJVcybq6yK5hTpGSFf3xo1bkhoMvyC62ehb4jD
+MDLwwNRyzCBEWQJLbq/LLizPFN2qXFJpXJcsuqsHNYRtDqDBEjtriRQwSqHnqTXt
+c0K46FYHldCJQ4/tBXxPI+WwtXjcNRWaV7n2BvR/Jk+B5e4Zz3LPnN0C4w5vORHs
+hN1jil8A3Hs/F+OmlQYrU8ZtNwTpSo2EXxe2fVgSDCsKRyNsPZj++OyujPzW+yaN
+lJ9I/q6s9gvX9o9o7nwZbqBETipWsdRK6RfBdTKpnyLNordbWwWTk6GxN8T5Ppit
+P6a3UlQ71VuflcswCTmEQ1pEfZrlRFKa9psBOW+cZLNxT9h0jGFMh6/B3w48Sag+
+cFcPBFWParC+cAXBIURDxT9G6bzNLogg7YKoaPsyiXnLDH2VJUCXs27D2wPJL24Q
+S7npvsg63MPPssWgG5cauLznmNR4y5pQi6oH/C10v0zrUJy6FPJzQhYRhWOvhtz6
+j88RGMrFNNCdB2VACtn699D+ixu3nRlXHIKCT+xLSfgslVYifmJOCNljBLGHOQ1e
+FJxQuNVpmmxjvk/8kqK+pHLB9Qn6M1ZYzip7OyUL3OAWabCabgEw2bQmUhiBWD3u
+buv0WAVOJEAFvBCAeYNQzrQMY+Rc3RnvynG4pI6Tbo8wC6/IJcDOw516JwARASB3
+tChBNTUxMjA0MjczNzRGM0Y3QUE1RjExNjZEREEyNTJFQkI4RUJFMUFGiQI3BBMB
+CgAhBQJSg/uTAhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEN2iUuu46+Gv
+9L0P/3tFu0LOZ/dAPjUNfKJCZqcIuVnD5xShMTsUbVx+QoXMy7rt4iRLD7ofGi/I
+vTAZehxk3sk/Slx5nbews+3NItyw6mcaP9HlmwKNr6k7BC2kJHcCxH4DNzhmIx1H
+3T/CggtHX42JBYKlGf22y+M8jAbvsPOUfTznx96mYNrOY6s1dJyn0kRleqJ8+tGj
+/5+0y90iZnGCa0FtacQkKUPkXwVodeZVxk8z5OEipShYKc+8dl+5WsvOzHqLC/KY
+xCGRb4JaqEMwouLNg8dTNAXXUvFGqJNDX4+andggogmI1hdD9xExfSU9cAGegg2t
+vvveC4S+CCHd+zt88iK5ze6F61RxwYhhNbkuFGjdgNGCpHtG/BQhKnYJuKEbq3oi
+mgNyxJERlfgaWXveiMG0AmACXN+jCkTtqZjQnsg2N2QDL3tjY7usmuiwRL1aVOFG
+Kw5/Cc+2nDeANS3Xi1403Ni269b1c6kNSoLe4zd0WsbO3Kouds8F8EQfeheXQe97
+ZxuvBOMsR9wHC3f0sl/vfxCGdUC+khmKk5taKnUeUFJmVmh5ghlVy8FySHGB0QHO
+zd8GUl59rFpQJNpNFQW2YKDhrcjxIr2AeJrdoDI6NsQ02+Qtep/bbq53hqtAD4jF
+t3S8vBbTXtRk6g2qn4ojF4SOIc8SAiZcURgVFuSJX8ngFbO4
+=OEw/
+-----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file
diff --git a/OpenKeychain/src/test/resources/test-keys/cooperpair/readme b/OpenKeychain/src/test/resources/test-keys/cooperpair/readme
new file mode 100644
index 000000000..fecb372d9
--- /dev/null
+++ b/OpenKeychain/src/test/resources/test-keys/cooperpair/readme
@@ -0,0 +1,3 @@
+"Cooperpair" testcase under public domain license, by @coruus:
+
+https://github.com/coruus/cooperpair/tree/master/pgpv4
diff --git a/OpenKeychain/src/test/resources/test-keys/divert_to_card_sec.asc b/OpenKeychain/src/test/resources/test-keys/divert_to_card_sec.asc
new file mode 100644
index 000000000..3c3bbebe4
--- /dev/null
+++ b/OpenKeychain/src/test/resources/test-keys/divert_to_card_sec.asc
@@ -0,0 +1,44 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+Version: GnuPG v1.4.12 (GNU/Linux)
+
+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
+Yg==
+=WUIv
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/OpenKeychain/src/test/resources/test-keys/mailvelope_07_no_key_flags.asc b/OpenKeychain/src/test/resources/test-keys/mailvelope_07_no_key_flags.asc
new file mode 100644
index 000000000..30e6b85e1
--- /dev/null
+++ b/OpenKeychain/src/test/resources/test-keys/mailvelope_07_no_key_flags.asc
@@ -0,0 +1,20 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: Mailvelope v0.7.0
+Comment: Email security by Mailvelope - http://www.mailvelope.com
+
+xsBNBFL9xMwBCACAa8z36B4Z4Yvpo7s4Y8jQsHNrJygyd8mh9+Bd3Sg+zt0Z
+UjfNS3SfwXocBTGOXrFlS0bRKd2CRXeXdTO0HqjCEKhGKHX73UhAcpBUoTV7
+6cgpYtKZL4tkIYWn47UPoASujjpwHxbDGaas/kmsTFPrlh8x5VOdEEVFkqPC
+wP1tnX1WALO58BWbs4R1vqrqBrOrGclm9cF2mErWP9QBLR/nH+soaVPK3Hrj
+/fX4S43xIxuhKmdZsljrfK7jsUkcF187QkK7xpyS5XSyoosPYIF/d06sVNlZ
+XlFFlJXuyndwnRA/VJHowa4hqFFQf1PjxV3g7IVqZfbtOX+SpcLCW507ABEB
+AAHNKlRlc3QgTWFpbCA8bWFpbHZlbG9wZUBzb21ld2hlcmUtZ21haWwuY29t
+PsLAXAQQAQgAEAUCUv3EzwkQ3CnDbfC4HTYAAIMAB/9AolqHiQun6rxyKgF5
+u9hgufo6FziYAtCQelRnUtONsGGUz6mvPsVliNsfbg0BAqwzeExXGBtsIoOv
+YAQ3a9zkK3lZSzO7lJIrg4UJyvqZAB6Vp5kJLJnWO1sfe4Pg8Xr8heawp2Hk
+na3MPma+ISb2jiioq8wGZHfSMdTYWPYSHf6645yKvfIZGSaG8TOtFYsASSHh
+ECfo6mQ+N/akF9pNI1S54RiZinssDn/vy2ZUUPpJGpaHDJ7zf6dATobaV+dV
+uqroe00SyJbYPzwKhEo7NgTEGdvICGnCXVoqDkS4j+lK07e5ztxE3OAIy5Un
+fC5CQLlbzR9jHSpe2FD6S9H+
+=hu6f
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/OpenKeychain/src/test/resources/test-keys/stripped_flags.asc b/OpenKeychain/src/test/resources/test-keys/stripped_flags.asc
new file mode 100644
index 000000000..0f4728297
--- /dev/null
+++ b/OpenKeychain/src/test/resources/test-keys/stripped_flags.asc
@@ -0,0 +1,60 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+
+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
+9uUAwtb1XXM6DVP1glMx
+=kEZ2
+-----END PGP PRIVATE KEY BLOCK-----
diff --git a/OpenKeychain/src/test/resources/test-keys/symantec_public.asc b/OpenKeychain/src/test/resources/test-keys/symantec_public.asc
new file mode 100644
index 000000000..f4148935c
--- /dev/null
+++ b/OpenKeychain/src/test/resources/test-keys/symantec_public.asc
@@ -0,0 +1,37 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: Encryption Desktop 10.3.1 (Build 13100)
+
+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
+=c8vd
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/OpenKeychain/src/test/resources/test-keys/symantec_secret.asc b/OpenKeychain/src/test/resources/test-keys/symantec_secret.asc
new file mode 100644
index 000000000..94451c1bf
--- /dev/null
+++ b/OpenKeychain/src/test/resources/test-keys/symantec_secret.asc
@@ -0,0 +1,46 @@
+-----BEGIN PGP PRIVATE KEY BLOCK-----
+Version: Encryption Desktop 10.3.1 (Build 13100)
+
+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
+=jUby
+-----END PGP PRIVATE KEY BLOCK-----