summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Sloan <varomodt@google.com>2017-03-21 09:39:01 -0700
committerRobert Sloan <varomodt@google.com>2017-03-21 16:23:27 -0700
commit8ecb7cdb5c51e9ce89a04ed0f5285ce646b8b7eb (patch)
tree946cff3ebbcb18578651c217dac5f501bdfd3a15
parent1c9db5392e4ec0845f9a934061677636f5400d14 (diff)
downloadboringssl-8ecb7cdb5c51e9ce89a04ed0f5285ce646b8b7eb.tar.gz
external/boringssl: Sync to 2d05568a7b7bc62affbd13ea97a81b5829b99794.
This includes the following changes: https://boringssl.googlesource.com/boringssl/+log/2070f8ad9151dc8f3a73bffaa146b5e6937a583f..2d05568a7b7bc62affbd13ea97a81b5829b99794 Test: BoringSSL CTS Presubmits Change-Id: Ib8174676671161667d54513df0f2dce7d70683ab
-rw-r--r--BORINGSSL_REVISION2
-rw-r--r--err_data.c900
-rw-r--r--sources.bp4
-rw-r--r--sources.mk2
-rw-r--r--src/PORTING.md1
-rw-r--r--src/crypto/CMakeLists.txt1
-rw-r--r--src/crypto/asn1/CMakeLists.txt13
-rw-r--r--src/crypto/asn1/asn1_test.cc41
-rw-r--r--src/crypto/asn1/x_bignum.c153
-rw-r--r--src/crypto/asn1/x_long.c200
-rw-r--r--src/crypto/bytestring/ber.c2
-rw-r--r--src/crypto/conf/conf.c14
-rw-r--r--src/crypto/err/conf.errordata1
-rw-r--r--src/crypto/evp/evp_test.cc14
-rw-r--r--src/crypto/evp/evp_tests.txt862
-rw-r--r--src/crypto/rsa/padding.c2
-rw-r--r--src/crypto/x509/x509_lu.c16
-rw-r--r--src/crypto/x509v3/v3_cpols.c12
-rw-r--r--src/include/openssl/asn1.h3
-rw-r--r--src/include/openssl/asn1t.h4
-rw-r--r--src/include/openssl/bytestring.h2
-rw-r--r--src/include/openssl/conf.h1
-rw-r--r--src/include/openssl/ssl.h9
-rw-r--r--src/ssl/test/runner/key_agreement.go2
-rw-r--r--src/tool/client.cc2
-rw-r--r--src/util/all_tests.json1
-rwxr-xr-xsrc/util/generate-coverage.sh5
27 files changed, 1384 insertions, 885 deletions
diff --git a/BORINGSSL_REVISION b/BORINGSSL_REVISION
index 440e6b24..4f7aa82b 100644
--- a/BORINGSSL_REVISION
+++ b/BORINGSSL_REVISION
@@ -1 +1 @@
-2070f8ad9151dc8f3a73bffaa146b5e6937a583f
+2d05568a7b7bc62affbd13ea97a81b5829b99794
diff --git a/err_data.c b/err_data.c
index c6840c9e..87a88ddb 100644
--- a/err_data.c
+++ b/err_data.c
@@ -74,146 +74,146 @@ const uint32_t kOpenSSLReasonValues[] = {
0xc3a8845,
0xc3b00ea,
0x10320845,
- 0x103293ab,
- 0x103313b7,
- 0x103393d0,
- 0x103413e3,
- 0x10348e8b,
- 0x10350c19,
- 0x103593f6,
- 0x1036140b,
- 0x1036941e,
- 0x1037143d,
- 0x10379456,
- 0x1038146b,
- 0x10389489,
- 0x10391498,
- 0x103994b4,
- 0x103a14cf,
- 0x103a94de,
- 0x103b14fa,
- 0x103b9515,
- 0x103c152c,
+ 0x103293c7,
+ 0x103313d3,
+ 0x103393ec,
+ 0x103413ff,
+ 0x10348ea7,
+ 0x10350c35,
+ 0x10359412,
+ 0x10361427,
+ 0x1036943a,
+ 0x10371459,
+ 0x10379472,
+ 0x10381487,
+ 0x103894a5,
+ 0x103914b4,
+ 0x103994d0,
+ 0x103a14eb,
+ 0x103a94fa,
+ 0x103b1516,
+ 0x103b9531,
+ 0x103c1548,
0x103c80ea,
- 0x103d153d,
- 0x103d9551,
- 0x103e1570,
- 0x103e957f,
- 0x103f1596,
- 0x103f95a9,
- 0x10400bea,
- 0x104095bc,
- 0x104115da,
- 0x104195ed,
- 0x10421607,
- 0x10429617,
- 0x1043162b,
- 0x10439641,
- 0x10441659,
- 0x1044966e,
- 0x10451682,
- 0x10459694,
+ 0x103d1559,
+ 0x103d956d,
+ 0x103e158c,
+ 0x103e959b,
+ 0x103f15b2,
+ 0x103f95c5,
+ 0x10400c06,
+ 0x104095d8,
+ 0x104115f6,
+ 0x10419609,
+ 0x10421623,
+ 0x10429633,
+ 0x10431647,
+ 0x1043965d,
+ 0x10441675,
+ 0x1044968a,
+ 0x1045169e,
+ 0x104596b0,
0x104605fb,
0x1046893f,
- 0x104716a9,
- 0x104796c0,
- 0x104816d5,
- 0x104896e3,
- 0x14320bcd,
- 0x14328bdb,
- 0x14330bea,
- 0x14338bfc,
+ 0x104716c5,
+ 0x104796dc,
+ 0x104816f1,
+ 0x104896ff,
+ 0x14320be9,
+ 0x14328bf7,
+ 0x14330c06,
+ 0x14338c18,
0x143400ac,
0x143480ea,
0x18320083,
- 0x18328ee1,
+ 0x18328efd,
0x183300ac,
- 0x18338ef7,
- 0x18340f0b,
+ 0x18338f13,
+ 0x18340f27,
0x183480ea,
- 0x18350f20,
- 0x18358f38,
- 0x18360f4d,
- 0x18368f61,
- 0x18370f85,
- 0x18378f9b,
- 0x18380faf,
- 0x18388fbf,
+ 0x18350f3c,
+ 0x18358f54,
+ 0x18360f69,
+ 0x18368f7d,
+ 0x18370fa1,
+ 0x18378fb7,
+ 0x18380fcb,
+ 0x18388fdb,
0x18390a57,
- 0x18398fcf,
- 0x183a0fe4,
- 0x183a8ff8,
- 0x183b0c25,
- 0x183b9005,
- 0x183c1017,
- 0x183c9022,
- 0x183d1032,
- 0x183d9043,
- 0x183e1054,
- 0x183e9066,
- 0x183f108f,
- 0x183f90a8,
- 0x184010c0,
+ 0x18398feb,
+ 0x183a1000,
+ 0x183a9014,
+ 0x183b0c41,
+ 0x183b9021,
+ 0x183c1033,
+ 0x183c903e,
+ 0x183d104e,
+ 0x183d905f,
+ 0x183e1070,
+ 0x183e9082,
+ 0x183f10ab,
+ 0x183f90c4,
+ 0x184010dc,
0x184086d3,
- 0x203210e7,
- 0x243210f3,
+ 0x20321103,
+ 0x2432110f,
0x24328985,
- 0x24331105,
- 0x24339112,
- 0x2434111f,
- 0x24349131,
- 0x24351140,
- 0x2435915d,
- 0x2436116a,
- 0x24369178,
- 0x24371186,
- 0x24379194,
- 0x2438119d,
- 0x243891aa,
- 0x243911bd,
- 0x28320c0d,
- 0x28328c25,
- 0x28330bea,
- 0x28338c38,
- 0x28340c19,
+ 0x24331121,
+ 0x2433912e,
+ 0x2434113b,
+ 0x2434914d,
+ 0x2435115c,
+ 0x24359179,
+ 0x24361186,
+ 0x24369194,
+ 0x243711a2,
+ 0x243791b0,
+ 0x243811b9,
+ 0x243891c6,
+ 0x243911d9,
+ 0x28320c29,
+ 0x28328c41,
+ 0x28330c06,
+ 0x28338c54,
+ 0x28340c35,
0x283480ac,
0x283500ea,
- 0x2c322a10,
- 0x2c32aa1e,
- 0x2c332a30,
- 0x2c33aa42,
- 0x2c342a56,
- 0x2c34aa68,
- 0x2c352a83,
- 0x2c35aa95,
- 0x2c362aa8,
+ 0x2c322a2c,
+ 0x2c32aa3a,
+ 0x2c332a4c,
+ 0x2c33aa5e,
+ 0x2c342a72,
+ 0x2c34aa84,
+ 0x2c352a9f,
+ 0x2c35aab1,
+ 0x2c362ac4,
0x2c36832d,
- 0x2c372ab5,
- 0x2c37aac7,
- 0x2c382ada,
- 0x2c38aaf1,
- 0x2c392aff,
- 0x2c39ab0f,
- 0x2c3a2b21,
- 0x2c3aab35,
- 0x2c3b2b46,
- 0x2c3bab65,
- 0x2c3c2b79,
- 0x2c3cab8f,
- 0x2c3d2ba8,
- 0x2c3dabc5,
- 0x2c3e2bd6,
- 0x2c3eabe4,
- 0x2c3f2bfc,
- 0x2c3fac14,
- 0x2c402c21,
- 0x2c4090e7,
- 0x2c412c32,
- 0x2c41ac45,
- 0x2c4210c0,
- 0x2c42ac56,
+ 0x2c372ad1,
+ 0x2c37aae3,
+ 0x2c382af6,
+ 0x2c38ab0d,
+ 0x2c392b1b,
+ 0x2c39ab2b,
+ 0x2c3a2b3d,
+ 0x2c3aab51,
+ 0x2c3b2b62,
+ 0x2c3bab81,
+ 0x2c3c2b95,
+ 0x2c3cabab,
+ 0x2c3d2bc4,
+ 0x2c3dabe1,
+ 0x2c3e2bf2,
+ 0x2c3eac00,
+ 0x2c3f2c18,
+ 0x2c3fac30,
+ 0x2c402c3d,
+ 0x2c409103,
+ 0x2c412c4e,
+ 0x2c41ac61,
+ 0x2c4210dc,
+ 0x2c42ac72,
0x2c430720,
- 0x2c43ab57,
+ 0x2c43ab73,
0x30320000,
0x30328015,
0x3033001f,
@@ -311,247 +311,248 @@ const uint32_t kOpenSSLReasonValues[] = {
0x34330b78,
0x34338b8b,
0x34340b9a,
- 0x34348bb7,
+ 0x34348bd3,
+ 0x34350bb7,
0x3c320083,
- 0x3c328c62,
- 0x3c330c7b,
- 0x3c338c96,
- 0x3c340cb3,
- 0x3c348cdd,
- 0x3c350cf8,
- 0x3c358d1e,
- 0x3c360d37,
- 0x3c368d4f,
- 0x3c370d60,
- 0x3c378d6e,
- 0x3c380d7b,
- 0x3c388d8f,
- 0x3c390c25,
- 0x3c398da3,
- 0x3c3a0db7,
+ 0x3c328c7e,
+ 0x3c330c97,
+ 0x3c338cb2,
+ 0x3c340ccf,
+ 0x3c348cf9,
+ 0x3c350d14,
+ 0x3c358d3a,
+ 0x3c360d53,
+ 0x3c368d6b,
+ 0x3c370d7c,
+ 0x3c378d8a,
+ 0x3c380d97,
+ 0x3c388dab,
+ 0x3c390c41,
+ 0x3c398dbf,
+ 0x3c3a0dd3,
0x3c3a88ff,
- 0x3c3b0dc7,
- 0x3c3b8de2,
- 0x3c3c0df4,
- 0x3c3c8e0a,
- 0x3c3d0e14,
- 0x3c3d8e28,
- 0x3c3e0e36,
- 0x3c3e8e5b,
- 0x3c3f0c4e,
- 0x3c3f8e44,
+ 0x3c3b0de3,
+ 0x3c3b8dfe,
+ 0x3c3c0e10,
+ 0x3c3c8e26,
+ 0x3c3d0e30,
+ 0x3c3d8e44,
+ 0x3c3e0e52,
+ 0x3c3e8e77,
+ 0x3c3f0c6a,
+ 0x3c3f8e60,
0x3c4000ac,
0x3c4080ea,
- 0x3c410cce,
- 0x3c418d0d,
- 0x403216fa,
- 0x40329710,
- 0x4033173e,
- 0x40339748,
- 0x4034175f,
- 0x4034977d,
- 0x4035178d,
- 0x4035979f,
- 0x403617ac,
- 0x403697b8,
- 0x403717cd,
- 0x403797df,
- 0x403817ea,
- 0x403897fc,
- 0x40390e8b,
- 0x4039980c,
- 0x403a181f,
- 0x403a9840,
- 0x403b1851,
- 0x403b9861,
+ 0x3c410cea,
+ 0x3c418d29,
+ 0x40321716,
+ 0x4032972c,
+ 0x4033175a,
+ 0x40339764,
+ 0x4034177b,
+ 0x40349799,
+ 0x403517a9,
+ 0x403597bb,
+ 0x403617c8,
+ 0x403697d4,
+ 0x403717e9,
+ 0x403797fb,
+ 0x40381806,
+ 0x40389818,
+ 0x40390ea7,
+ 0x40399828,
+ 0x403a183b,
+ 0x403a985c,
+ 0x403b186d,
+ 0x403b987d,
0x403c0064,
0x403c8083,
- 0x403d18e5,
- 0x403d98fb,
- 0x403e190a,
- 0x403e9942,
- 0x403f195c,
- 0x403f996a,
- 0x4040197f,
- 0x40409993,
- 0x404119b0,
- 0x404199cb,
- 0x404219e4,
- 0x404299f7,
- 0x40431a0b,
- 0x40439a23,
- 0x40441a3a,
+ 0x403d1901,
+ 0x403d9917,
+ 0x403e1926,
+ 0x403e995e,
+ 0x403f1978,
+ 0x403f9986,
+ 0x4040199b,
+ 0x404099af,
+ 0x404119cc,
+ 0x404199e7,
+ 0x40421a00,
+ 0x40429a13,
+ 0x40431a27,
+ 0x40439a3f,
+ 0x40441a56,
0x404480ac,
- 0x40451a4f,
- 0x40459a61,
- 0x40461a85,
- 0x40469aa5,
- 0x40471ab3,
- 0x40479ada,
- 0x40481b17,
- 0x40489b30,
- 0x40491b47,
- 0x40499b61,
- 0x404a1b78,
- 0x404a9b96,
- 0x404b1bae,
- 0x404b9bc5,
- 0x404c1bdb,
- 0x404c9bed,
- 0x404d1c0e,
- 0x404d9c30,
- 0x404e1c44,
- 0x404e9c51,
- 0x404f1c7e,
- 0x404f9ca7,
- 0x40501ce2,
- 0x40509cf6,
- 0x40511d11,
- 0x40521d21,
- 0x40529d45,
- 0x40531d5d,
- 0x40539d70,
- 0x40541d85,
- 0x40549da8,
- 0x40551db6,
- 0x40559dd3,
- 0x40561de0,
- 0x40569df9,
- 0x40571e11,
- 0x40579e24,
- 0x40581e39,
- 0x40589e60,
- 0x40591e8f,
- 0x40599ebc,
- 0x405a1ed0,
- 0x405a9ee0,
- 0x405b1ef8,
- 0x405b9f09,
- 0x405c1f1c,
- 0x405c9f3d,
- 0x405d1f4a,
- 0x405d9f61,
- 0x405e1f9f,
+ 0x40451a6b,
+ 0x40459a7d,
+ 0x40461aa1,
+ 0x40469ac1,
+ 0x40471acf,
+ 0x40479af6,
+ 0x40481b33,
+ 0x40489b4c,
+ 0x40491b63,
+ 0x40499b7d,
+ 0x404a1b94,
+ 0x404a9bb2,
+ 0x404b1bca,
+ 0x404b9be1,
+ 0x404c1bf7,
+ 0x404c9c09,
+ 0x404d1c2a,
+ 0x404d9c4c,
+ 0x404e1c60,
+ 0x404e9c6d,
+ 0x404f1c9a,
+ 0x404f9cc3,
+ 0x40501cfe,
+ 0x40509d12,
+ 0x40511d2d,
+ 0x40521d3d,
+ 0x40529d61,
+ 0x40531d79,
+ 0x40539d8c,
+ 0x40541da1,
+ 0x40549dc4,
+ 0x40551dd2,
+ 0x40559def,
+ 0x40561dfc,
+ 0x40569e15,
+ 0x40571e2d,
+ 0x40579e40,
+ 0x40581e55,
+ 0x40589e7c,
+ 0x40591eab,
+ 0x40599ed8,
+ 0x405a1eec,
+ 0x405a9efc,
+ 0x405b1f14,
+ 0x405b9f25,
+ 0x405c1f38,
+ 0x405c9f59,
+ 0x405d1f66,
+ 0x405d9f7d,
+ 0x405e1fbb,
0x405e8a95,
- 0x405f1fc0,
- 0x405f9fcd,
- 0x40601fdb,
- 0x40609ffd,
- 0x40612041,
- 0x4061a079,
- 0x40622090,
- 0x4062a0a1,
- 0x406320b2,
- 0x4063a0c7,
- 0x406420de,
- 0x4064a10a,
- 0x40652125,
- 0x4065a13c,
- 0x40662154,
- 0x4066a17e,
- 0x406721a9,
- 0x4067a1ca,
- 0x406821f1,
- 0x4068a212,
- 0x40692244,
- 0x4069a272,
- 0x406a2293,
- 0x406aa2b3,
- 0x406b243b,
- 0x406ba45e,
- 0x406c2474,
- 0x406ca6ef,
- 0x406d271e,
- 0x406da746,
- 0x406e2774,
- 0x406ea7a8,
- 0x406f27c7,
- 0x406fa7dc,
- 0x407027ef,
- 0x4070a80c,
+ 0x405f1fdc,
+ 0x405f9fe9,
+ 0x40601ff7,
+ 0x4060a019,
+ 0x4061205d,
+ 0x4061a095,
+ 0x406220ac,
+ 0x4062a0bd,
+ 0x406320ce,
+ 0x4063a0e3,
+ 0x406420fa,
+ 0x4064a126,
+ 0x40652141,
+ 0x4065a158,
+ 0x40662170,
+ 0x4066a19a,
+ 0x406721c5,
+ 0x4067a1e6,
+ 0x4068220d,
+ 0x4068a22e,
+ 0x40692260,
+ 0x4069a28e,
+ 0x406a22af,
+ 0x406aa2cf,
+ 0x406b2457,
+ 0x406ba47a,
+ 0x406c2490,
+ 0x406ca70b,
+ 0x406d273a,
+ 0x406da762,
+ 0x406e2790,
+ 0x406ea7c4,
+ 0x406f27e3,
+ 0x406fa7f8,
+ 0x4070280b,
+ 0x4070a828,
0x40710800,
- 0x4071a81e,
- 0x40722831,
- 0x4072a84a,
- 0x40732862,
- 0x4073936d,
- 0x40742876,
- 0x4074a890,
- 0x407528a1,
- 0x4075a8b5,
- 0x407628c3,
- 0x407691aa,
- 0x407728e8,
- 0x4077a90a,
- 0x40782925,
- 0x4078a95e,
- 0x40792975,
- 0x4079a98b,
- 0x407a2997,
- 0x407aa9aa,
- 0x407b29bf,
- 0x407ba9d1,
- 0x407c29e6,
- 0x407ca9ef,
- 0x407d222d,
- 0x407d9cb7,
- 0x407e293a,
- 0x407e9e70,
- 0x407f1ac7,
- 0x407f9887,
- 0x40801c8e,
- 0x40809aef,
- 0x40811d33,
- 0x40819c68,
- 0x4082275f,
- 0x4082986d,
- 0x40831e4b,
- 0x4083a0ef,
- 0x40841b03,
- 0x40849ea8,
- 0x40851f2d,
- 0x4085a025,
- 0x40861f81,
- 0x40869cd1,
- 0x4087278c,
- 0x4087a056,
- 0x408818ce,
- 0x4088a1dd,
- 0x4089191d,
- 0x408998aa,
- 0x408a2494,
- 0x41f42366,
- 0x41f923f8,
- 0x41fe22eb,
- 0x41fea4e0,
- 0x41ff25d1,
- 0x4203237f,
- 0x420823a1,
- 0x4208a3dd,
- 0x420922cf,
- 0x4209a417,
- 0x420a2326,
- 0x420aa306,
- 0x420b2346,
- 0x420ba3bf,
- 0x420c25ed,
- 0x420ca4ad,
- 0x420d24c7,
- 0x420da4fe,
- 0x42122518,
- 0x421725b4,
- 0x4217a55a,
- 0x421c257c,
- 0x421f2537,
- 0x42212604,
- 0x42262597,
- 0x422b26d3,
- 0x422ba681,
- 0x422c26bb,
- 0x422ca640,
- 0x422d261f,
- 0x422da6a0,
- 0x422e2666,
+ 0x4071a83a,
+ 0x4072284d,
+ 0x4072a866,
+ 0x4073287e,
+ 0x40739389,
+ 0x40742892,
+ 0x4074a8ac,
+ 0x407528bd,
+ 0x4075a8d1,
+ 0x407628df,
+ 0x407691c6,
+ 0x40772904,
+ 0x4077a926,
+ 0x40782941,
+ 0x4078a97a,
+ 0x40792991,
+ 0x4079a9a7,
+ 0x407a29b3,
+ 0x407aa9c6,
+ 0x407b29db,
+ 0x407ba9ed,
+ 0x407c2a02,
+ 0x407caa0b,
+ 0x407d2249,
+ 0x407d9cd3,
+ 0x407e2956,
+ 0x407e9e8c,
+ 0x407f1ae3,
+ 0x407f98a3,
+ 0x40801caa,
+ 0x40809b0b,
+ 0x40811d4f,
+ 0x40819c84,
+ 0x4082277b,
+ 0x40829889,
+ 0x40831e67,
+ 0x4083a10b,
+ 0x40841b1f,
+ 0x40849ec4,
+ 0x40851f49,
+ 0x4085a041,
+ 0x40861f9d,
+ 0x40869ced,
+ 0x408727a8,
+ 0x4087a072,
+ 0x408818ea,
+ 0x4088a1f9,
+ 0x40891939,
+ 0x408998c6,
+ 0x408a24b0,
+ 0x41f42382,
+ 0x41f92414,
+ 0x41fe2307,
+ 0x41fea4fc,
+ 0x41ff25ed,
+ 0x4203239b,
+ 0x420823bd,
+ 0x4208a3f9,
+ 0x420922eb,
+ 0x4209a433,
+ 0x420a2342,
+ 0x420aa322,
+ 0x420b2362,
+ 0x420ba3db,
+ 0x420c2609,
+ 0x420ca4c9,
+ 0x420d24e3,
+ 0x420da51a,
+ 0x42122534,
+ 0x421725d0,
+ 0x4217a576,
+ 0x421c2598,
+ 0x421f2553,
+ 0x42212620,
+ 0x422625b3,
+ 0x422b26ef,
+ 0x422ba69d,
+ 0x422c26d7,
+ 0x422ca65c,
+ 0x422d263b,
+ 0x422da6bc,
+ 0x422e2682,
0x4432072b,
0x4432873a,
0x44330746,
@@ -569,104 +570,104 @@ const uint32_t kOpenSSLReasonValues[] = {
0x44390800,
0x4439880e,
0x443a0821,
- 0x4c3211d4,
- 0x4c3291e4,
- 0x4c3311f7,
- 0x4c339217,
+ 0x4c3211f0,
+ 0x4c329200,
+ 0x4c331213,
+ 0x4c339233,
0x4c3400ac,
0x4c3480ea,
- 0x4c351223,
- 0x4c359231,
- 0x4c36124d,
- 0x4c369260,
- 0x4c37126f,
- 0x4c37927d,
- 0x4c381292,
- 0x4c38929e,
- 0x4c3912be,
- 0x4c3992e8,
- 0x4c3a1301,
- 0x4c3a931a,
+ 0x4c35123f,
+ 0x4c35924d,
+ 0x4c361269,
+ 0x4c36927c,
+ 0x4c37128b,
+ 0x4c379299,
+ 0x4c3812ae,
+ 0x4c3892ba,
+ 0x4c3912da,
+ 0x4c399304,
+ 0x4c3a131d,
+ 0x4c3a9336,
0x4c3b05fb,
- 0x4c3b9333,
- 0x4c3c1345,
- 0x4c3c9354,
- 0x4c3d136d,
- 0x4c3d937c,
- 0x4c3e1389,
- 0x50322c68,
- 0x5032ac77,
- 0x50332c82,
- 0x5033ac92,
- 0x50342cab,
- 0x5034acc5,
- 0x50352cd3,
- 0x5035ace9,
- 0x50362cfb,
- 0x5036ad11,
- 0x50372d2a,
- 0x5037ad3d,
- 0x50382d55,
- 0x5038ad66,
- 0x50392d7b,
- 0x5039ad8f,
- 0x503a2daf,
- 0x503aadc5,
- 0x503b2ddd,
- 0x503badef,
- 0x503c2e0b,
- 0x503cae22,
- 0x503d2e3b,
- 0x503dae51,
- 0x503e2e5e,
- 0x503eae74,
- 0x503f2e86,
+ 0x4c3b934f,
+ 0x4c3c1361,
+ 0x4c3c9370,
+ 0x4c3d1389,
+ 0x4c3d9398,
+ 0x4c3e13a5,
+ 0x50322c84,
+ 0x5032ac93,
+ 0x50332c9e,
+ 0x5033acae,
+ 0x50342cc7,
+ 0x5034ace1,
+ 0x50352cef,
+ 0x5035ad05,
+ 0x50362d17,
+ 0x5036ad2d,
+ 0x50372d46,
+ 0x5037ad59,
+ 0x50382d71,
+ 0x5038ad82,
+ 0x50392d97,
+ 0x5039adab,
+ 0x503a2dcb,
+ 0x503aade1,
+ 0x503b2df9,
+ 0x503bae0b,
+ 0x503c2e27,
+ 0x503cae3e,
+ 0x503d2e57,
+ 0x503dae6d,
+ 0x503e2e7a,
+ 0x503eae90,
+ 0x503f2ea2,
0x503f8382,
- 0x50402e99,
- 0x5040aea9,
- 0x50412ec3,
- 0x5041aed2,
- 0x50422eec,
- 0x5042af09,
- 0x50432f19,
- 0x5043af29,
- 0x50442f38,
+ 0x50402eb5,
+ 0x5040aec5,
+ 0x50412edf,
+ 0x5041aeee,
+ 0x50422f08,
+ 0x5042af25,
+ 0x50432f35,
+ 0x5043af45,
+ 0x50442f54,
0x5044843f,
- 0x50452f4c,
- 0x5045af6a,
- 0x50462f7d,
- 0x5046af93,
- 0x50472fa5,
- 0x5047afba,
- 0x50482fe0,
- 0x5048afee,
- 0x50493001,
- 0x5049b016,
- 0x504a302c,
- 0x504ab03c,
- 0x504b305c,
- 0x504bb06f,
- 0x504c3092,
- 0x504cb0c0,
- 0x504d30d2,
- 0x504db0ef,
- 0x504e310a,
- 0x504eb126,
- 0x504f3138,
- 0x504fb14f,
- 0x5050315e,
+ 0x50452f68,
+ 0x5045af86,
+ 0x50462f99,
+ 0x5046afaf,
+ 0x50472fc1,
+ 0x5047afd6,
+ 0x50482ffc,
+ 0x5048b00a,
+ 0x5049301d,
+ 0x5049b032,
+ 0x504a3048,
+ 0x504ab058,
+ 0x504b3078,
+ 0x504bb08b,
+ 0x504c30ae,
+ 0x504cb0dc,
+ 0x504d30ee,
+ 0x504db10b,
+ 0x504e3126,
+ 0x504eb142,
+ 0x504f3154,
+ 0x504fb16b,
+ 0x5050317a,
0x505086ef,
- 0x50513171,
- 0x58320ec9,
- 0x68320e8b,
- 0x68328c25,
- 0x68330c38,
- 0x68338e99,
- 0x68340ea9,
+ 0x5051318d,
+ 0x58320ee5,
+ 0x68320ea7,
+ 0x68328c41,
+ 0x68330c54,
+ 0x68338eb5,
+ 0x68340ec5,
0x683480ea,
- 0x6c320e67,
- 0x6c328bfc,
- 0x6c330e72,
+ 0x6c320e83,
+ 0x6c328c18,
+ 0x6c330e8e,
0x74320a0b,
0x78320970,
0x78328985,
@@ -693,7 +694,7 @@ const uint32_t kOpenSSLReasonValues[] = {
0x783d0b19,
0x783d8b2e,
0x783e0a84,
- 0x7c3210d6,
+ 0x7c3210f2,
};
const size_t kOpenSSLReasonValuesLen = sizeof(kOpenSSLReasonValues) / sizeof(kOpenSSLReasonValues[0]);
@@ -855,6 +856,7 @@ const char kOpenSSLReasonStringData[] =
"MISSING_EQUAL_SIGN\0"
"NO_CLOSE_BRACE\0"
"UNABLE_TO_CREATE_NEW_SECTION\0"
+ "VARIABLE_EXPANSION_TOO_LONG\0"
"VARIABLE_HAS_NO_VALUE\0"
"BAD_GENERATOR\0"
"INVALID_PUBKEY\0"
diff --git a/sources.bp b/sources.bp
index b49daae9..d40ff4c3 100644
--- a/sources.bp
+++ b/sources.bp
@@ -52,8 +52,6 @@ cc_defaults {
"src/crypto/asn1/tasn_typ.c",
"src/crypto/asn1/tasn_utl.c",
"src/crypto/asn1/time_support.c",
- "src/crypto/asn1/x_bignum.c",
- "src/crypto/asn1/x_long.c",
"src/crypto/base64/base64.c",
"src/crypto/bio/bio.c",
"src/crypto/bio/bio_mem.c",
@@ -466,6 +464,7 @@ cc_defaults {
cc_defaults {
name: "boringssl_crypto_test_sources",
srcs: [
+ "src/crypto/asn1/asn1_test.cc",
"src/crypto/chacha/chacha_test.cc",
"src/crypto/curve25519/x25519_test.cc",
"src/crypto/dh/dh_test.cc",
@@ -490,7 +489,6 @@ cc_defaults {
name: "boringssl_tests_sources",
srcs: [
"src/crypto/aes/aes_test.cc",
- "src/crypto/asn1/asn1_test.cc",
"src/crypto/base64/base64_test.cc",
"src/crypto/bio/bio_test.cc",
"src/crypto/bn/bn_test.cc",
diff --git a/sources.mk b/sources.mk
index 2c9cfa2e..bfc9b7b4 100644
--- a/sources.mk
+++ b/sources.mk
@@ -50,8 +50,6 @@ crypto_sources := \
src/crypto/asn1/tasn_typ.c\
src/crypto/asn1/tasn_utl.c\
src/crypto/asn1/time_support.c\
- src/crypto/asn1/x_bignum.c\
- src/crypto/asn1/x_long.c\
src/crypto/base64/base64.c\
src/crypto/bio/bio.c\
src/crypto/bio/bio_mem.c\
diff --git a/src/PORTING.md b/src/PORTING.md
index 30d774ca..b9d67523 100644
--- a/src/PORTING.md
+++ b/src/PORTING.md
@@ -227,6 +227,7 @@ parameter.
`SSL_CTRL_OPTIONS` | `SSL_CTX_get_options` or `SSL_CTX_set_options`
`SSL_CTRL_SESS_NUMBER` | `SSL_CTX_sess_number`
`SSL_CTRL_SET_CURVES` | `SSL_CTX_set1_curves`
+`SSL_CTRL_SET_ECDH_AUTO` | `SSL_CTX_set_ecdh_auto`
`SSL_CTRL_SET_MAX_CERT_LIST` | `SSL_CTX_set_max_cert_list`
`SSL_CTRL_SET_MAX_SEND_FRAGMENT` | `SSL_CTX_set_max_send_fragment`
`SSL_CTRL_SET_MSG_CALLBACK` | `SSL_set_msg_callback`
diff --git a/src/crypto/CMakeLists.txt b/src/crypto/CMakeLists.txt
index 6bb05cc2..81efad40 100644
--- a/src/crypto/CMakeLists.txt
+++ b/src/crypto/CMakeLists.txt
@@ -211,6 +211,7 @@ add_dependencies(all_tests refcount_test)
add_executable(
crypto_test
+ asn1/asn1_test.cc
chacha/chacha_test.cc
curve25519/x25519_test.cc
dh/dh_test.cc
diff --git a/src/crypto/asn1/CMakeLists.txt b/src/crypto/asn1/CMakeLists.txt
index cd1ee8c2..9a5c651c 100644
--- a/src/crypto/asn1/CMakeLists.txt
+++ b/src/crypto/asn1/CMakeLists.txt
@@ -36,17 +36,4 @@ add_library(
tasn_typ.c
tasn_utl.c
time_support.c
- x_bignum.c
- x_long.c
)
-
-add_executable(
- asn1_test
-
- asn1_test.cc
-
- $<TARGET_OBJECTS:test_support>
-)
-
-target_link_libraries(asn1_test crypto)
-add_dependencies(all_tests asn1_test)
diff --git a/src/crypto/asn1/asn1_test.cc b/src/crypto/asn1/asn1_test.cc
index 77a1ee0d..accf3ba5 100644
--- a/src/crypto/asn1/asn1_test.cc
+++ b/src/crypto/asn1/asn1_test.cc
@@ -14,10 +14,13 @@
#include <stdio.h>
+#include <gtest/gtest.h>
+
#include <openssl/asn1.h>
-#include <openssl/crypto.h>
#include <openssl/err.h>
+#include "../test/test_util.h"
+
// kTag128 is an ASN.1 structure with a universal tag with number 128.
static const uint8_t kTag128[] = {
@@ -38,42 +41,22 @@ static const uint8_t kTagOverflow[] = {
0x1f, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x01, 0x00,
};
-static bool TestLargeTags() {
+TEST(ASN1Test, LargeTags) {
const uint8_t *p = kTag258;
bssl::UniquePtr<ASN1_TYPE> obj(d2i_ASN1_TYPE(NULL, &p, sizeof(kTag258)));
- if (obj) {
- fprintf(stderr, "Parsed value with illegal tag (type = %d).\n", obj->type);
- return false;
- }
+ EXPECT_FALSE(obj) << "Parsed value with illegal tag" << obj->type;
ERR_clear_error();
p = kTagOverflow;
obj.reset(d2i_ASN1_TYPE(NULL, &p, sizeof(kTagOverflow)));
- if (obj) {
- fprintf(stderr, "Parsed value with tag overflow (type = %d).\n", obj->type);
- return false;
- }
+ EXPECT_FALSE(obj) << "Parsed value with tag overflow" << obj->type;
ERR_clear_error();
p = kTag128;
obj.reset(d2i_ASN1_TYPE(NULL, &p, sizeof(kTag128)));
- if (!obj || obj->type != 128 || obj->value.asn1_string->length != 1 ||
- obj->value.asn1_string->data[0] != 0) {
- fprintf(stderr, "Failed to parse value with tag 128.\n");
- ERR_print_errors_fp(stderr);
- return false;
- }
-
- return true;
-}
-
-int main() {
- CRYPTO_library_init();
-
- if (!TestLargeTags()) {
- return 1;
- }
-
- printf("PASS\n");
- return 0;
+ ASSERT_TRUE(obj);
+ EXPECT_EQ(128, obj->type);
+ const uint8_t kZero = 0;
+ EXPECT_EQ(Bytes(&kZero, 1), Bytes(obj->value.asn1_string->data,
+ obj->value.asn1_string->length));
}
diff --git a/src/crypto/asn1/x_bignum.c b/src/crypto/asn1/x_bignum.c
deleted file mode 100644
index 585d9d4a..00000000
--- a/src/crypto/asn1/x_bignum.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.] */
-
-#include <openssl/asn1.h>
-
-#include <openssl/asn1t.h>
-#include <openssl/bn.h>
-
-/*
- * Custom primitive type for BIGNUM handling. This reads in an ASN1_INTEGER
- * as a BIGNUM directly. Currently it ignores the sign which isn't a problem
- * since all BIGNUMs used are non negative and anything that looks negative
- * is normally due to an encoding error.
- */
-
-#define BN_SENSITIVE 1
-
-static int bn_new(ASN1_VALUE **pval, const ASN1_ITEM *it);
-static void bn_free(ASN1_VALUE **pval, const ASN1_ITEM *it);
-
-static int bn_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype,
- const ASN1_ITEM *it);
-static int bn_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
- int utype, char *free_cont, const ASN1_ITEM *it);
-
-static const ASN1_PRIMITIVE_FUNCS bignum_pf = {
- NULL, 0,
- bn_new,
- bn_free,
- 0,
- bn_c2i,
- bn_i2c,
- NULL /* prim_print */ ,
-};
-
-ASN1_ITEM_start(BIGNUM)
- ASN1_ITYPE_PRIMITIVE, V_ASN1_INTEGER, NULL, 0, &bignum_pf, 0, "BIGNUM"
-ASN1_ITEM_end(BIGNUM)
-
-ASN1_ITEM_start(CBIGNUM)
- ASN1_ITYPE_PRIMITIVE, V_ASN1_INTEGER, NULL, 0, &bignum_pf, BN_SENSITIVE, "BIGNUM"
-ASN1_ITEM_end(CBIGNUM)
-
-static int bn_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
-{
- *pval = (ASN1_VALUE *)BN_new();
- if (*pval)
- return 1;
- else
- return 0;
-}
-
-static void bn_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
-{
- if (!*pval)
- return;
- if (it->size & BN_SENSITIVE)
- BN_clear_free((BIGNUM *)*pval);
- else
- BN_free((BIGNUM *)*pval);
- *pval = NULL;
-}
-
-static int bn_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype,
- const ASN1_ITEM *it)
-{
- BIGNUM *bn;
- int pad;
- if (!*pval)
- return -1;
- bn = (BIGNUM *)*pval;
- /* If MSB set in an octet we need a padding byte */
- if (BN_num_bits(bn) & 0x7)
- pad = 0;
- else
- pad = 1;
- if (cont) {
- if (pad)
- *cont++ = 0;
- BN_bn2bin(bn, cont);
- }
- return pad + BN_num_bytes(bn);
-}
-
-static int bn_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
- int utype, char *free_cont, const ASN1_ITEM *it)
-{
- BIGNUM *bn;
- if (!*pval) {
- if (!bn_new(pval, it)) {
- return 0;
- }
- }
- bn = (BIGNUM *)*pval;
- if (!BN_bin2bn(cont, len, bn)) {
- bn_free(pval, it);
- return 0;
- }
- return 1;
-}
diff --git a/src/crypto/asn1/x_long.c b/src/crypto/asn1/x_long.c
deleted file mode 100644
index b53127a3..00000000
--- a/src/crypto/asn1/x_long.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.] */
-
-#include <openssl/asn1.h>
-
-#include <string.h>
-
-#include <openssl/asn1t.h>
-#include <openssl/bn.h>
-#include <openssl/err.h>
-#include <openssl/mem.h>
-
-#include "../internal.h"
-
-
-/*
- * Custom primitive type for long handling. This converts between an
- * ASN1_INTEGER and a long directly.
- */
-
-static int long_new(ASN1_VALUE **pval, const ASN1_ITEM *it);
-static void long_free(ASN1_VALUE **pval, const ASN1_ITEM *it);
-
-static int long_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype,
- const ASN1_ITEM *it);
-static int long_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
- int utype, char *free_cont, const ASN1_ITEM *it);
-static int long_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it,
- int indent, const ASN1_PCTX *pctx);
-
-static const ASN1_PRIMITIVE_FUNCS long_pf = {
- NULL, 0,
- long_new,
- long_free,
- long_free, /* Clear should set to initial value */
- long_c2i,
- long_i2c,
- long_print
-};
-
-ASN1_ITEM_start(LONG)
- ASN1_ITYPE_PRIMITIVE, V_ASN1_INTEGER, NULL, 0, &long_pf, ASN1_LONG_UNDEF, "LONG"
-ASN1_ITEM_end(LONG)
-
-ASN1_ITEM_start(ZLONG)
- ASN1_ITYPE_PRIMITIVE, V_ASN1_INTEGER, NULL, 0, &long_pf, 0, "ZLONG"
-ASN1_ITEM_end(ZLONG)
-
-static int long_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
-{
- *(long *)pval = it->size;
- return 1;
-}
-
-static void long_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
-{
- *(long *)pval = it->size;
-}
-
-static int long_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype,
- const ASN1_ITEM *it)
-{
- long ltmp;
- unsigned long utmp;
- int clen, pad, i;
- /* this exists to bypass broken gcc optimization */
- char *cp = (char *)pval;
-
- /* use memcpy, because we may not be long aligned */
- OPENSSL_memcpy(&ltmp, cp, sizeof(long));
-
- if (ltmp == it->size)
- return -1;
- /*
- * Convert the long to positive: we subtract one if negative so we can
- * cleanly handle the padding if only the MSB of the leading octet is
- * set.
- */
- if (ltmp < 0)
- utmp = -ltmp - 1;
- else
- utmp = ltmp;
- clen = BN_num_bits_word(utmp);
- /* If MSB of leading octet set we need to pad */
- if (!(clen & 0x7))
- pad = 1;
- else
- pad = 0;
-
- /* Convert number of bits to number of octets */
- clen = (clen + 7) >> 3;
-
- if (cont) {
- if (pad)
- *cont++ = (ltmp < 0) ? 0xff : 0;
- for (i = clen - 1; i >= 0; i--) {
- cont[i] = (unsigned char)(utmp & 0xff);
- if (ltmp < 0)
- cont[i] ^= 0xff;
- utmp >>= 8;
- }
- }
- return clen + pad;
-}
-
-static int long_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
- int utype, char *free_cont, const ASN1_ITEM *it)
-{
- int neg, i;
- long ltmp;
- unsigned long utmp = 0;
- char *cp = (char *)pval;
- if (len > (int)sizeof(long)) {
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG);
- return 0;
- }
- /* Is it negative? */
- if (len && (cont[0] & 0x80))
- neg = 1;
- else
- neg = 0;
- utmp = 0;
- for (i = 0; i < len; i++) {
- utmp <<= 8;
- if (neg)
- utmp |= cont[i] ^ 0xff;
- else
- utmp |= cont[i];
- }
- ltmp = (long)utmp;
- if (neg) {
- ltmp++;
- ltmp = -ltmp;
- }
- if (ltmp == it->size) {
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG);
- return 0;
- }
- OPENSSL_memcpy(cp, &ltmp, sizeof(long));
- return 1;
-}
-
-static int long_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it,
- int indent, const ASN1_PCTX *pctx)
-{
- return BIO_printf(out, "%ld\n", *(long *)pval);
-}
diff --git a/src/crypto/bytestring/ber.c b/src/crypto/bytestring/ber.c
index ee3cd0a0..54bac596 100644
--- a/src/crypto/bytestring/ber.c
+++ b/src/crypto/bytestring/ber.c
@@ -38,7 +38,7 @@ static int is_string_type(unsigned tag) {
case CBS_ASN1_UTF8STRING:
case CBS_ASN1_NUMERICSTRING:
case CBS_ASN1_PRINTABLESTRING:
- case CBS_ASN1_T16STRING:
+ case CBS_ASN1_T61STRING:
case CBS_ASN1_VIDEOTEXSTRING:
case CBS_ASN1_IA5STRING:
case CBS_ASN1_GRAPHICSTRING:
diff --git a/src/crypto/conf/conf.c b/src/crypto/conf/conf.c
index 5b51d225..00172f5b 100644
--- a/src/crypto/conf/conf.c
+++ b/src/crypto/conf/conf.c
@@ -69,6 +69,10 @@
#include "../internal.h"
+/* The maximum length we can grow a value to after variable expansion. 64k
+ * should be more than enough for all reasonable uses. */
+#define MAX_CONF_VALUE_LENGTH 65536
+
static uint32_t conf_value_hash(const CONF_VALUE *v) {
return (lh_strhash(v->section) << 2) ^ lh_strhash(v->name);
}
@@ -316,7 +320,15 @@ static int str_copy(CONF *conf, char *section, char **pto, char *from) {
OPENSSL_PUT_ERROR(CONF, CONF_R_VARIABLE_HAS_NO_VALUE);
goto err;
}
- BUF_MEM_grow_clean(buf, (strlen(p) + buf->length - (e - from)));
+ size_t newsize = strlen(p) + buf->length - (e - from);
+ if (newsize > MAX_CONF_VALUE_LENGTH) {
+ OPENSSL_PUT_ERROR(CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG);
+ goto err;
+ }
+ if (!BUF_MEM_grow_clean(buf, newsize)) {
+ OPENSSL_PUT_ERROR(CONF, ERR_R_MALLOC_FAILURE);
+ goto err;
+ }
while (*p) {
buf->data[to++] = *(p++);
}
diff --git a/src/crypto/err/conf.errordata b/src/crypto/err/conf.errordata
index 651fabe1..e6226e43 100644
--- a/src/crypto/err/conf.errordata
+++ b/src/crypto/err/conf.errordata
@@ -3,4 +3,5 @@ CONF,101,MISSING_CLOSE_SQUARE_BRACKET
CONF,102,MISSING_EQUAL_SIGN
CONF,103,NO_CLOSE_BRACE
CONF,104,UNABLE_TO_CREATE_NEW_SECTION
+CONF,106,VARIABLE_EXPANSION_TOO_LONG
CONF,105,VARIABLE_HAS_NO_VALUE
diff --git a/src/crypto/evp/evp_test.cc b/src/crypto/evp/evp_test.cc
index d03c61f0..6ca250e5 100644
--- a/src/crypto/evp/evp_test.cc
+++ b/src/crypto/evp/evp_test.cc
@@ -224,9 +224,8 @@ static bool TestEVP(FileTest *t, void *arg) {
}
EVP_PKEY *key = (*key_map)[key_name].get();
- std::vector<uint8_t> input, output;
- if (!t->GetBytes(&input, "Input") ||
- !t->GetBytes(&output, "Output")) {
+ std::vector<uint8_t> input;
+ if (!t->GetBytes(&input, "Input")) {
return false;
}
@@ -263,7 +262,9 @@ static bool TestEVP(FileTest *t, void *arg) {
}
if (t->GetType() == "Verify") {
- if (!EVP_PKEY_verify(ctx.get(), output.data(), output.size(), input.data(),
+ std::vector<uint8_t> output;
+ if (!t->GetBytes(&output, "Output") ||
+ !EVP_PKEY_verify(ctx.get(), output.data(), output.size(), input.data(),
input.size())) {
// ECDSA sometimes doesn't push an error code. Push one on the error queue
// so it's distinguishable from other errors.
@@ -274,7 +275,7 @@ static bool TestEVP(FileTest *t, void *arg) {
}
size_t len;
- std::vector<uint8_t> actual;
+ std::vector<uint8_t> actual, output;
if (!key_op(ctx.get(), nullptr, &len, input.data(), input.size())) {
return false;
}
@@ -283,7 +284,8 @@ static bool TestEVP(FileTest *t, void *arg) {
return false;
}
actual.resize(len);
- if (!t->ExpectBytesEqual(output.data(), output.size(), actual.data(), len)) {
+ if (!t->GetBytes(&output, "Output") ||
+ !t->ExpectBytesEqual(output.data(), output.size(), actual.data(), len)) {
return false;
}
return true;
diff --git a/src/crypto/evp/evp_tests.txt b/src/crypto/evp/evp_tests.txt
index eaee888d..48121f9c 100644
--- a/src/crypto/evp/evp_tests.txt
+++ b/src/crypto/evp/evp_tests.txt
@@ -22,6 +22,11 @@ PublicKey = RSA-2048-SPKI-Invalid2
Input = 3083000122300d06092a864886f70d01010105000382010f003082010a0282010100cd0081ea7b2ae1ea06d59f7c73d9ffb94a09615c2e4ba7c636cef08dd3533ec3185525b015c769b99a77d6725bf9c3532a9b6e5f6627d5fb85160768d3dda9cbd35974511717dc3d309d2fc47ee41f97e32adb7f9dd864a1c4767a666ecd71bc1aacf5e7517f4b38594fea9b05e42d5ada9912008013e45316a4d9bb8ed086b88d28758bacaf922d46a868b485d239c9baeb0e2b64592710f42b2d1ea0a4b4802c0becab328f8a68b0073bdb546feea9809d2849912b390c1532bc7e29c7658f8175fae46f34332ff87bcab3e40649b98577869da0ea718353f0722754886913648760d122be676e0fc483dd20ffc31bda96a31966c9aa2e75ad03de47e1c44f0203010001
Error = DECODE_ERROR
+# RSA 512 bit key.
+PrivateKey = RSA-512
+Type = RSA
+Input = 30820154020100300d06092a864886f70d01010105000482013e3082013a020100024100dd20403d976a38c9d79152d87b5c8e9f05033eadd7b7de709bf5b0c4a5182a97d18483526b02362b992e154a9f37faa396ca2685cdab8fec09877ebe705f4dd70203010001024055bebcca655d7e39de8a6eaa9d636db682161907064039544755c53eeb99ec618c03a210dbc61471eaba10c5c365c9726d6b7a96f54d455f7d168d49367270e1022100f21a05d9fd6817301ce49ce10448f9bdd44f5ef5b7557cd7d83155db46382ae7022100e9d1f7157783db2feab1936954ddc4e83aa365695868144cda1be6813b61d791022100d6001eb0040920860ce41fafdf23ca6dfbdf74e6e9f98cf3164cf5c16f9e727d02206f6f73f4b52b10517be6f9bc5f87fa0a3bb817e2e711636b651f9af1c85d4f21022063eff2e57f5b4ca20342cfe793e25526624e3692f192461f9e1ce7f13f2d72c8
+
# EC P-256 key
PrivateKey = P-256
Type = EC
@@ -96,14 +101,12 @@ Output = c09d402423cbf233d26cae21f954547bc43fe80fd41360a0336cfdbe9aedad05bef6fd2
Sign = RSA-2048
Digest = SHA1
Input = "0123456789ABCDEF12345"
-Output =
Error = INVALID_DIGEST_LENGTH
# Digest too short
Sign = RSA-2048
Digest = SHA1
Input = "0123456789ABCDEF12345"
-Output =
Error = INVALID_DIGEST_LENGTH
# Mismatched digest
@@ -233,6 +236,55 @@ Output = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747
# If SHA-384, this input happens fail to recover the salt length altogether.
Error = SLEN_RECOVERY_FAILED
+# The salt length is too large for the modulus (signing).
+Sign = RSA-2048
+RSAPadding = PSS
+PSSSaltLength = 223
+Digest = SHA256
+Input = "0123456789ABCDEF0123456789ABCDEF"
+Error = DATA_TOO_LARGE_FOR_KEY_SIZE
+
+# The salt length is too large for the modulus (verifying).
+Verify = RSA-2048
+RSAPadding = PSS
+PSSSaltLength = 223
+Digest = SHA256
+Input = "0123456789ABCDEF0123456789ABCDEF"
+Output = 4de433d5844043ef08d354da03cb29068780d52706d7d1e4d50efb7d58c9d547d83a747ddd0635a96b28f854e50145518482cb49e963054621b53c60c498d07c16e9c2789c893cf38d4d86900de71bde463bd2761d1271e358c7480a1ac0bab930ddf39602ad1bc165b5d7436b516b7a7858e8eb7ab1c420eeb482f4d207f0e462b1724959320a084e13848d11d10fb593e66bf680bf6d3f345fc3e9c3de60abbac37e1c6ec80a268c8d9fc49626c679097aa690bc1aa662b95eb8db70390861aa0898229f9349b4b5fdd030d4928c47084708a933144be23bd3c6e661b85b2c0ef9ed36d498d5b7320e8194d363d4ad478c059bae804181965e0b81b663158a
+Error = DATA_TOO_LARGE
+
+# The hash is too large for the modulus (signing).
+Sign = RSA-512
+RSAPadding = PSS
+PSSSaltLength = 0
+Digest = SHA512
+Input = "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF"
+Error = DATA_TOO_LARGE_FOR_KEY_SIZE
+
+Sign = RSA-512
+RSAPadding = PSS
+PSSSaltLength = -2
+Digest = SHA512
+Input = "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF"
+Error = DATA_TOO_LARGE_FOR_KEY_SIZE
+
+# The hash is too large for the modulus (verifying).
+Verify = RSA-512
+RSAPadding = PSS
+PSSSaltLength = 0
+Digest = SHA512
+Input = "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF"
+Output = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+Error = DATA_TOO_LARGE
+
+Verify = RSA-512
+RSAPadding = PSS
+PSSSaltLength = -2
+Digest = SHA512
+Input = "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF"
+Output = 457001d9ca50a93385fc5ec721c9dbbe7a0f2e9e4a2f846a30a8811dde66347b83901c7492039243537c7a667fafffd69049bcbd36afd0010d9b425e2d8785c1
+Error = DATA_TOO_LARGE
+
# RSA decrypt
@@ -243,7 +295,6 @@ Output = "Hello World"
# Corrupted ciphertext
Decrypt = RSA-2048
Input = 550af55a2904e7b9762352f8fb7fa235a9cb053aacb2d5fcb8ca48453cb2ee3619746c701abf2d4cc67003471a187900b05aa812bd25ed05c675dfc8c97a24a7bf49bd6214992cad766d05a9a2b57b74f26a737e0237b8b76c45f1f226a836d7cfbc75ba999bdbe48dbc09227aa46c88f21dccba7840141ad5a5d71fd122e6bd6ac3e564780dfe623fc1ca9b995a6037bf0bbd43b205a84ac5444f34202c05ce9113087176432476576de6ffff9a52ea57c08be3ec2f49676cb8e12f762ac71fa3c321e00ac988910c85ff52f93825666ce0d40ffaa0592078919d4493f46d95ccf76364c6d57760dd0b64805f9afc76a2365a5575ca301d5103f0ea76cb9a79
-Output = "Hello World"
Error = PKCS_DECODING_ERROR
# OAEP padding
@@ -256,7 +307,6 @@ Output = "Hello World"
Decrypt = RSA-2048
RSAPadding = OAEP
Input = 458708dfbd42a1297ce7a9c86c7087ab80b1754810929b89c5107ca55368587686986fce94d86cc1595b3fb736223a656ec0f34d18ba1cc5665593610f56c58e26b272d584f3d983a5c91085700755aebd921fb280bba3eda7046ec07b43e7298e52d59edc92be4639a8ce08b2f85976ecf6d98cc469eeb9d5d8e2a32ea8a6626edafe1038b3df455668a9f3c77cad8b92fb872e00058c3d2a7ede1a1f03fc5622084ae04d9d24f6bf0995c58d35b93b699b9763595e123f2ab0863cc9229eb290e2ede7715c7a8f39e0b9a3e2e1b56ebb62f1cbfbb5986fb212ebd785b83d01d968b11d1756c7337f70c1f1a63bff03608e24f3a2fd44e67f832a8701c5d5ac
-Output = "Hello World"
Error = OAEP_DECODING_ERROR
@@ -318,3 +368,807 @@ Digest = SHA1
Input = "0123456789ABCDEF1234"
Output = 3080022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec80000
Error = BAD_SIGNATURE
+
+
+# Additional RSA-PSS and RSA-OAEP tests converted from
+# ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-1/pkcs-1v2-1-vec.zip
+
+PublicKey = RSA-PSS-1
+Type = RSA
+Input = 30819f300d06092a864886f70d010101050003818d0030818902818100a56e4a0e701017589a5187dc7ea841d156f2ec0e36ad52a44dfeb1e61f7ad991d8c51056ffedb162b4c0f283a12a88a394dff526ab7291cbb307ceabfce0b1dfd5cd9508096d5b2b8b6df5d671ef6377c0921cb23c270a70e2598e6ff89d19f105acc2d3f0cb35f29280e1386b6f64c4ef22e1e1f20d0ce8cffb2249bd9a21370203010001
+
+Verify = RSA-PSS-1
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = cd8b6538cb8e8de566b68bd067569dbf1ee2718e
+Output = 9074308fb598e9701b2294388e52f971faac2b60a5145af185df5287b5ed2887e57ce7fd44dc8634e407c8e0e4360bc226f3ec227f9d9e54638e8d31f5051215df6ebb9c2f9579aa77598a38f914b5b9c1bd83c4e2f9f382a0d0aa3542ffee65984a601bc69eb28deb27dca12c82c2d4c3f66cd500f1ff2b994d8a4e30cbb33c
+
+Verify = RSA-PSS-1
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = e35befc17a1d160b9ce35fbd8eb16e7ee491d3fd
+Output = 3ef7f46e831bf92b32274142a585ffcefbdca7b32ae90d10fb0f0c729984f04ef29a9df0780775ce43739b97838390db0a5505e63de927028d9d29b219ca2c4517832558a55d694a6d25b9dab66003c4cccd907802193be5170d26147d37b93590241be51c25055f47ef62752cfbe21418fafe98c22c4d4d47724fdb5669e843
+
+Verify = RSA-PSS-1
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 0652ec67bcee30f9d2699122b91c19abdba89f91
+Output = 666026fba71bd3e7cf13157cc2c51a8e4aa684af9778f91849f34335d141c00154c4197621f9624a675b5abc22ee7d5baaffaae1c9baca2cc373b3f33e78e6143c395a91aa7faca664eb733afd14d8827259d99a7550faca501ef2b04e33c23aa51f4b9e8282efdb728cc0ab09405a91607c6369961bc8270d2d4f39fce612b1
+
+Verify = RSA-PSS-1
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 39c21c4cceda9c1adf839c744e1212a6437575ec
+Output = 4609793b23e9d09362dc21bb47da0b4f3a7622649a47d464019b9aeafe53359c178c91cd58ba6bcb78be0346a7bc637f4b873d4bab38ee661f199634c547a1ad8442e03da015b136e543f7ab07c0c13e4225b8de8cce25d4f6eb8400f81f7e1833b7ee6e334d370964ca79fdb872b4d75223b5eeb08101591fb532d155a6de87
+
+Verify = RSA-PSS-1
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 36dae913b77bd17cae6e7b09453d24544cebb33c
+Output = 1d2aad221ca4d31ddf13509239019398e3d14b32dc34dc5af4aeaea3c095af73479cf0a45e5629635a53a018377615b16cb9b13b3e09d671eb71e387b8545c5960da5a64776e768e82b2c93583bf104c3fdb23512b7b4e89f633dd0063a530db4524b01c3f384c09310e315a79dcd3d684022a7f31c865a664e316978b759fad
+
+Verify = RSA-PSS-1
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 45eef191f4f79c31fe5d2ede7e5098994e929d2d
+Output = 2a34f6125e1f6b0bf971e84fbd41c632be8f2c2ace7de8b6926e31ff93e9af987fbc06e51e9be14f5198f91f3f953bd67da60a9df59764c3dc0fe08e1cbef0b75f868d10ad3fba749fef59fb6dac46a0d6e504369331586f58e4628f39aa278982543bc0eeb537dc61958019b394fb273f215858a0a01ac4d650b955c67f4c58
+
+PublicKey = RSA-PSS-2
+Type = RSA
+Input = 30819f300d06092a864886f70d010101050003818d0030818902818101d40c1bcf97a68ae7cdbd8a7bf3e34fa19dcca4ef75a47454375f94514d88fed006fb829f8419ff87d6315da68a1ff3a0938e9abb3464011c303ad99199cf0c7c7a8b477dce829e8844f625b115e5e9c4a59cf8f8113b6834336a2fd2689b472cbb5e5cabe674350c59b6c17e176874fb42f8fc3d176a017edc61fd326c4b33c90203010001
+
+Verify = RSA-PSS-2
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 5c81a3e2a658246628cd0ee8b00bb4c012bc9739
+Output = 014c5ba5338328ccc6e7a90bf1c0ab3fd606ff4796d3c12e4b639ed9136a5fec6c16d8884bdd99cfdc521456b0742b736868cf90de099adb8d5ffd1deff39ba4007ab746cefdb22d7df0e225f54627dc65466131721b90af445363a8358b9f607642f78fab0ab0f43b7168d64bae70d8827848d8ef1e421c5754ddf42c2589b5b3
+
+Verify = RSA-PSS-2
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 27f71611446aa6eabf037f7dedeede3203244991
+Output = 010991656cca182b7f29d2dbc007e7ae0fec158eb6759cb9c45c5ff87c7635dd46d150882f4de1e9ae65e7f7d9018f6836954a47c0a81a8a6b6f83f2944d6081b1aa7c759b254b2c34b691da67cc0226e20b2f18b42212761dcd4b908a62b371b5918c5742af4b537e296917674fb914194761621cc19a41f6fb953fbcbb649dea
+
+Verify = RSA-PSS-2
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 03ecc2c33e93f05fc7224fcc0d461356cb897217
+Output = 007f0030018f53cdc71f23d03659fde54d4241f758a750b42f185f87578520c30742afd84359b6e6e8d3ed959dc6fe486bedc8e2cf001f63a7abe16256a1b84df0d249fc05d3194ce5f0912742dbbf80dd174f6c51f6bad7f16cf3364eba095a06267dc3793803ac7526aebe0a475d38b8c2247ab51c4898df7047dc6adf52c6c4
+
+Verify = RSA-PSS-2
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 246c727b4b9494849dddb068d582e179ac20999c
+Output = 009cd2f4edbe23e12346ae8c76dd9ad3230a62076141f16c152ba18513a48ef6f010e0e37fd3df10a1ec629a0cb5a3b5d2893007298c30936a95903b6ba85555d9ec3673a06108fd62a2fda56d1ce2e85c4db6b24a81ca3b496c36d4fd06eb7c9166d8e94877c42bea622b3bfe9251fdc21d8d5371badad78a488214796335b40b
+
+Verify = RSA-PSS-2
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = e8617ca3ea66ce6a58ede2d11af8c3ba8a6ba912
+Output = 00ec430824931ebd3baa43034dae98ba646b8c36013d1671c3cf1cf8260c374b19f8e1cc8d965012405e7e9bf7378612dfcc85fce12cda11f950bd0ba8876740436c1d2595a64a1b32efcfb74a21c873b3cc33aaf4e3dc3953de67f0674c0453b4fd9f604406d441b816098cb106fe3472bc251f815f59db2e4378a3addc181ecf
+
+Verify = RSA-PSS-2
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 7a6fdc1a4e434ecbc35d657ad49a2f4fafd43bc8
+Output = 00475b1648f814a8dc0abdc37b5527f543b666bb6e39d30e5b49d3b876dccc58eac14e32a2d55c2616014456ad2f246fc8e3d560da3ddf379a1c0bd200f10221df078c219a151bc8d4ec9d2fc2564467811014ef15d8ea01c2ebbff8c2c8efab38096e55fcbe3285c7aa558851254faffa92c1c72b78758663ef4582843139d7a6
+
+PublicKey = RSA-PSS-3
+Type = RSA
+Input = 30819f300d06092a864886f70d010101050003818d0030818902818102f246ef451ed3eebb9a310200cc25859c048e4be798302991112eb68ce6db674e280da21feded1ae74880ca522b18db249385012827c515f0e466a1ffa691d98170574e9d0eadb087586ca48933da3cc953d95bd0ed50de10ddcb6736107d6c831c7f663e833ca4c097e700ce0fb945f88fb85fe8e5a773172565b914a471a4430203010001
+
+Verify = RSA-PSS-3
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 3552be69dd74bdc56d2cf8c38ef7bafe269040fe
+Output = 0088b135fb1794b6b96c4a3e678197f8cac52b64b2fe907d6f27de761124964a99a01a882740ecfaed6c01a47464bb05182313c01338a8cd097214cd68ca103bd57d3bc9e816213e61d784f182467abf8a01cf253e99a156eaa8e3e1f90e3c6e4e3aa2d83ed0345b89fafc9c26077c14b6ac51454fa26e446e3a2f153b2b16797f
+
+Verify = RSA-PSS-3
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 609143ff7240e55c062aba8b9e4426a781919bc9
+Output = 02a5f0a858a0864a4f65017a7d69454f3f973a2999839b7bbc48bf78641169179556f595fa41f6ff18e286c2783079bc0910ee9cc34f49ba681124f923dfa88f426141a368a5f5a930c628c2c3c200e18a7644721a0cbec6dd3f6279bde3e8f2be5e2d4ee56f97e7ceaf33054be7042bd91a63bb09f897bd41e81197dee99b11af
+
+Verify = RSA-PSS-3
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 0afd22f879a9cda7c584f4135f8f1c961db114c0
+Output = 0244bcd1c8c16955736c803be401272e18cb990811b14f72db964124d5fa760649cbb57afb8755dbb62bf51f466cf23a0a1607576e983d778fceffa92df7548aea8ea4ecad2c29dd9f95bc07fe91ecf8bee255bfe8762fd7690aa9bfa4fa0849ef728c2c42c4532364522df2ab7f9f8a03b63f7a499175828668f5ef5a29e3802c
+
+Verify = RSA-PSS-3
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 405dd56d395ef0f01b555c48f748cc32b210650b
+Output = 0196f12a005b98129c8df13c4cb16f8aa887d3c40d96df3a88e7532ef39cd992f273abc370bc1be6f097cfebbf0118fd9ef4b927155f3df22b904d90702d1f7ba7a52bed8b8942f412cd7bd676c9d18e170391dcd345c06a730964b3f30bcce0bb20ba106f9ab0eeb39cf8a6607f75c0347f0af79f16afa081d2c92d1ee6f836b8
+
+Verify = RSA-PSS-3
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = a2c313b0440c8a0c47233b87f0a160c61af3eae7
+Output = 021eca3ab4892264ec22411a752d92221076d4e01c0e6f0dde9afd26ba5acf6d739ef987545d16683e5674c9e70f1de649d7e61d48d0caeb4fb4d8b24fba84a6e3108fee7d0705973266ac524b4ad280f7ae17dc59d96d3351586b5a3bdb895d1e1f7820ac6135d8753480998382ba32b7349559608c38745290a85ef4e9f9bd83
+
+Verify = RSA-PSS-3
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = f1bf6ca7b4bbdbb6bf20a4bf55728725d177154a
+Output = 012fafec862f56e9e92f60ab0c77824f4299a0ca734ed26e0644d5d222c7f0bde03964f8e70a5cb65ed44e44d56ae0edf1ff86ca032cc5dd4404dbb76ab854586c44eed8336d08d457ce6c03693b45c0f1efef93624b95b8ec169c616d20e5538ebc0b6737a6f82b4bc0570924fc6b35759a3348426279f8b3d7744e2d222426ce
+
+PublicKey = RSA-PSS-4
+Type = RSA
+Input = 30819f300d06092a864886f70d010101050003818d00308189028181054adb7886447efe6f57e0368f06cf52b0a3370760d161cef126b91be7f89c421b62a6ec1da3c311d75ed50e0ab5fff3fd338acc3aa8a4e77ee26369acb81ba900fa83f5300cf9bb6c53ad1dc8a178b815db4235a9a9da0c06de4e615ea1277ce559e9c108de58c14a81aa77f5a6f8d1335494498848c8b95940740be7bf7c37050203010001
+
+Verify = RSA-PSS-4
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = f8b0abf70fec0bca74f0accbc24f75e6e90d3bfd
+Output = 0323d5b7bf20ba4539289ae452ae4297080feff4518423ff4811a817837e7d82f1836cdfab54514ff0887bddeebf40bf99b047abc3ecfa6a37a3ef00f4a0c4a88aae0904b745c846c4107e8797723e8ac810d9e3d95dfa30ff4966f4d75d13768d20857f2b1406f264cfe75e27d7652f4b5ed3575f28a702f8c4ed9cf9b2d44948
+
+Verify = RSA-PSS-4
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 04a10944bfe11ab801e77889f3fd3d7f4ff0b629
+Output = 049d0185845a264d28feb1e69edaec090609e8e46d93abb38371ce51f4aa65a599bdaaa81d24fba66a08a116cb644f3f1e653d95c89db8bbd5daac2709c8984000178410a7c6aa8667ddc38c741f710ec8665aa9052be929d4e3b16782c1662114c5414bb0353455c392fc28f3db59054b5f365c49e1d156f876ee10cb4fd70598
+
+Verify = RSA-PSS-4
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = ba01243db223eb97fb86d746c3148adaaa0ca344
+Output = 03fbc410a2ced59500fb99f9e2af2781ada74e13145624602782e2994813eefca0519ecd253b855fb626a90d771eae028b0c47a199cbd9f8e3269734af4163599090713a3fa910fa0960652721432b971036a7181a2bc0cab43b0b598bc6217461d7db305ff7e954c5b5bb231c39e791af6bcfa76b147b081321f72641482a2aad
+
+Verify = RSA-PSS-4
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 934bb0d38d6836daec9de82a9648d4593da67cd2
+Output = 0486644bc66bf75d28335a6179b10851f43f09bded9fac1af33252bb9953ba4298cd6466b27539a70adaa3f89b3db3c74ab635d122f4ee7ce557a61e59b82ffb786630e5f9db53c77d9a0c12fab5958d4c2ce7daa807cd89ba2cc7fcd02ff470ca67b229fcce814c852c73cc93bea35be68459ce478e9d4655d121c8472f371d4f
+
+Verify = RSA-PSS-4
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = ec35d81abd1cceac425a935758b683465c8bd879
+Output = 022a80045353904cb30cbb542d7d4990421a6eec16a8029a8422adfd22d6aff8c4cc0294af110a0c067ec86a7d364134459bb1ae8ff836d5a8a2579840996b320b19f13a13fad378d931a65625dae2739f0c53670b35d9d3cbac08e733e4ec2b83af4b9196d63e7c4ff1ddeae2a122791a125bfea8deb0de8ccf1f4ffaf6e6fb0a
+
+Verify = RSA-PSS-4
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 72ce251d17b04dd3970d6ff1fbe3624899e9e941
+Output = 00938dcb6d583046065f69c78da7a1f1757066a7fa75125a9d2929f0b79a60b627b082f11f5b196f28eb9daa6f21c05e5140f6aef1737d2023075c05ecf04a028c686a2ab3e7d5a0664f295ce12995e890908b6ad21f0839eb65b70393a7b5afd9871de0caa0cedec5b819626756209d13ab1e7bb9546a26ff37e9a51af9fd562e
+
+PublicKey = RSA-PSS-5
+Type = RSA
+Input = 30819f300d06092a864886f70d010101050003818d003081890281810d10f661f29940f5ed39aa260966deb47843679d2b6fb25b3de370f3ac7c19916391fd25fb527ebfa6a4b4df45a1759d996c4bb4ebd18828c44fc52d0191871740525f47a4b0cc8da325ed8aa676b0d0f626e0a77f07692170acac8082f42faa7dc7cd123e730e31a87985204cabcbe6670d43a2dd2b2ddef5e05392fc213bc5070203010001
+
+Verify = RSA-PSS-5
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = d98b7061943510bc3dd9162f7169aabdbdcd0222
+Output = 0ba373f76e0921b70a8fbfe622f0bf77b28a3db98e361051c3d7cb92ad0452915a4de9c01722f6823eeb6adf7e0ca8290f5de3e549890ac2a3c5950ab217ba58590894952de96f8df111b2575215da6c161590c745be612476ee578ed384ab33e3ece97481a252f5c79a98b5532ae00cdd62f2ecc0cd1baefe80d80b962193ec1d
+
+Verify = RSA-PSS-5
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 7ae8e699f754988f4fd645e463302e49a2552072
+Output = 08180de825e4b8b014a32da8ba761555921204f2f90d5f24b712908ff84f3e220ad17997c0dd6e706630ba3e84add4d5e7ab004e58074b549709565d43ad9e97b5a7a1a29e85b9f90f4aafcdf58321de8c5974ef9abf2d526f33c0f2f82e95d158ea6b81f1736db8d1af3d6ac6a83b32d18bae0ff1b2fe27de4c76ed8c7980a34e
+
+Verify = RSA-PSS-5
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 8d46c7c05534c1ba2cc7624500d48a4531604bff
+Output = 05e0fdbdf6f756ef733185ccfa8ced2eb6d029d9d56e35561b5db8e70257ee6fd019d2f0bbf669fe9b9821e78df6d41e31608d58280f318ee34f559941c8df13287574bac000b7e58dc4f414ba49fb127f9d0f8936638c76e85356c994f79750f7fa3cf4fd482df75e3fb9978cd061f7abb17572e6e63e0bde12cbdcf18c68b979
+
+Verify = RSA-PSS-5
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = ee3de96783fd0a157c8b20bf5566124124dcfe65
+Output = 0bc989853bc2ea86873271ce183a923ab65e8a53100e6df5d87a24c4194eb797813ee2a187c097dd872d591da60c568605dd7e742d5af4e33b11678ccb63903204a3d080b0902c89aba8868f009c0f1c0cb85810bbdd29121abb8471ff2d39e49fd92d56c655c8e037ad18fafbdc92c95863f7f61ea9efa28fea401369d19daea1
+
+Verify = RSA-PSS-5
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 1204df0b03c2724e2709c23fc71789a21b00ae4c
+Output = 0aefa943b698b9609edf898ad22744ac28dc239497cea369cbbd84f65c95c0ad776b594740164b59a739c6ff7c2f07c7c077a86d95238fe51e1fcf33574a4ae0684b42a3f6bf677d91820ca89874467b2c23add77969c80717430d0efc1d3695892ce855cb7f7011630f4df26def8ddf36fc23905f57fa6243a485c770d5681fcd
+
+Verify = RSA-PSS-5
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 29926bc3280c841f601acd0d6f17ea38023eddbc
+Output = 02802dccfa8dfaf5279bf0b4a29ba1b157611faeaaf419b8919d15941900c1339e7e92e6fae562c53e6cc8e84104b110bce03ad18525e3c49a0eadad5d3f28f244a8ed89edbafbb686277cfa8ae909714d6b28f4bf8e293aa04c41efe7c0a81266d5c061e2575be032aa464674ff71626219bd74cc45f0e7ed4e3ff96eee758e8f
+
+PublicKey = RSA-PSS-6
+Type = RSA
+Input = 30819f300d06092a864886f70d010101050003818d00308189028181164ca31cff609f3a0e7101b039f2e4fe6dd37519ab98598d179e174996598071f47d3a04559158d7be373cf1aa53f0aa6ef09039e5678c2a4c63900514c8c4f8aaed5de12a5f10b09c311af8c0ffb5b7a297f2efc63b8d6b0510931f0b98e48bf5fc6ec4e7b8db1ffaeb08c38e02adb8f03a48229c99e969431f61cb8c4dc698d10203010001
+
+Verify = RSA-PSS-6
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = ab464e8cb65ae5fdea47a53fa84b234d6bfd52f6
+Output = 04c0cfacec04e5badbece159a5a1103f69b3f32ba593cb4cc4b1b7ab455916a96a27cd2678ea0f46ba37f7fc9c86325f29733b389f1d97f43e7201c0f348fc45fe42892335362eee018b5b161f2f9393031225c713012a576bc88e23052489868d9010cbf033ecc568e8bc152bdc59d560e41291915d28565208e22aeec9ef85d1
+
+Verify = RSA-PSS-6
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 92d0bcae82b641f578f040f5151be8eda6d42299
+Output = 0a2314250cf52b6e4e908de5b35646bcaa24361da8160fb0f9257590ab3ace42b0dc3e77ad2db7c203a20bd952fbb56b1567046ecfaa933d7b1000c3de9ff05b7d989ba46fd43bc4c2d0a3986b7ffa13471d37eb5b47d64707bd290cfd6a9f393ad08ec1e3bd71bb5792615035cdaf2d8929aed3be098379377e777ce79aaa4773
+
+Verify = RSA-PSS-6
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 3569bd8fd2e28f2443375efa94f186f6911ffc2b
+Output = 086df6b500098c120f24ff8423f727d9c61a5c9007d3b6a31ce7cf8f3cbec1a26bb20e2bd4a046793299e03e37a21b40194fb045f90b18bf20a47992ccd799cf9c059c299c0526854954aade8a6ad9d97ec91a1145383f42468b231f4d72f23706d9853c3fa43ce8ace8bfe7484987a1ec6a16c8daf81f7c8bf42774707a9df456
+
+Verify = RSA-PSS-6
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 7abbb7b42de335730a0b641f1e314b6950b84f98
+Output = 0b5b11ad549863ffa9c51a14a1106c2a72cc8b646e5c7262509786105a984776534ca9b54c1cc64bf2d5a44fd7e8a69db699d5ea52087a4748fd2abc1afed1e5d6f7c89025530bdaa2213d7e030fa55df6f34bcf1ce46d2edf4e3ae4f3b01891a068c9e3a44bbc43133edad6ecb9f35400c4252a5762d65744b99cb9f4c559329f
+
+Verify = RSA-PSS-6
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 55b7eb27be7a787a59eb7e5fac468db8917a7725
+Output = 02d71fa9b53e4654fefb7f08385cf6b0ae3a817942ebf66c35ac67f0b069952a3ce9c7e1f1b02e480a9500836de5d64cdb7ecde04542f7a79988787e24c2ba05f5fd482c023ed5c30e04839dc44bed2a3a3a4fee01113c891a47d32eb8025c28cb050b5cdb576c70fe76ef523405c08417faf350b037a43c379339fcb18d3a356b
+
+Verify = RSA-PSS-6
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = de2fa0367ef49083ff89b9905d3fd646fcc12c38
+Output = 0a40a16e2fe2b38d1df90546167cf9469c9e3c3681a3442b4b2c2f581deb385ce99fc6188bb02a841d56e76d301891e24560550fcc2a26b55f4ccb26d837d350a154bcaca8392d98fa67959e9727b78cad03269f56968fc56b68bd679926d83cc9cb215550645ccda31c760ff35888943d2d8a1d351e81e5d07b86182e751081ef
+
+PublicKey = RSA-PSS-7
+Type = RSA
+Input = 30819f300d06092a864886f70d010101050003818d0030818902818137c9da4a66c8c408b8da27d0c9d79f8ccb1eafc1d2fe48746d940b7c4ef5dee18ad12647cefaa0c4b3188b221c515386759b93f02024b25ab9242f8357d8f3fd49640ee5e643eaf6c64deefa7089727c8ff03993333915c6ef21bf5975b6e50d118b51008ec33e9f01a0a545a10a836a43ddbca9d8b5c5d3548022d7064ea29ab30203010001
+
+Verify = RSA-PSS-7
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 8be4afbdd76bd8d142c5f4f46dba771ee5d6d29d
+Output = 187f390723c8902591f0154bae6d4ecbffe067f0e8b795476ea4f4d51ccc810520bb3ca9bca7d0b1f2ea8a17d873fa27570acd642e3808561cb9e975ccfd80b23dc5771cdb3306a5f23159dacbd3aa2db93d46d766e09ed15d900ad897a8d274dc26b47e994a27e97e2268a766533ae4b5e42a2fcaf755c1c4794b294c60555823
+
+Verify = RSA-PSS-7
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 402140dc605b2f5c5ec0d15bce9f9ba8857fe117
+Output = 10fd89768a60a67788abb5856a787c8561f3edcf9a83e898f7dc87ab8cce79429b43e56906941a886194f137e591fe7c339555361fbbe1f24feb2d4bcdb80601f3096bc9132deea60ae13082f44f9ad41cd628936a4d51176e42fc59cb76db815ce5ab4db99a104aafea68f5d330329ebf258d4ede16064bd1d00393d5e1570eb8
+
+Verify = RSA-PSS-7
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 3e885205892ff2b6b37c2c4eb486c4bf2f9e7f20
+Output = 2b31fde99859b977aa09586d8e274662b25a2a640640b457f594051cb1e7f7a911865455242926cf88fe80dfa3a75ba9689844a11e634a82b075afbd69c12a0df9d25f84ad4945df3dc8fe90c3cefdf26e95f0534304b5bdba20d3e5640a2ebfb898aac35ae40f26fce5563c2f9f24f3042af76f3c7072d687bbfb959a88460af1
+
+Verify = RSA-PSS-7
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 1fc2201d0c442a4736cd8b2cd00c959c47a3bf42
+Output = 32c7ca38ff26949a15000c4ba04b2b13b35a3810e568184d7ecabaa166b7ffabddf2b6cf4ba07124923790f2e5b1a5be040aea36fe132ec130e1f10567982d17ac3e89b8d26c3094034e762d2e031264f01170beecb3d1439e05846f25458367a7d9c02060444672671e64e877864559ca19b2074d588a281b5804d23772fbbe19
+
+Verify = RSA-PSS-7
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = e4351b66819e5a31501f89acc7faf57030e9aac5
+Output = 07eb651d75f1b52bc263b2e198336e99fbebc4f332049a922a10815607ee2d989db3a4495b7dccd38f58a211fb7e193171a3d891132437ebca44f318b280509e52b5fa98fcce8205d9697c8ee4b7ff59d4c59c79038a1970bd2a0d451ecdc5ef11d9979c9d35f8c70a6163717607890d586a7c6dc01c79f86a8f28e85235f8c2f1
+
+Verify = RSA-PSS-7
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 49f6cc58365e514e1a3f301f4de16f9fb5347ff2
+Output = 18da3cdcfe79bfb77fd9c32f377ad399146f0a8e810620233271a6e3ed3248903f5cdc92dc79b55d3e11615aa056a795853792a3998c349ca5c457e8ca7d29d796aa24f83491709befcfb1510ea513c92829a3f00b104f655634f320752e130ec0ccf6754ff893db302932bb025eb60e87822598fc619e0e981737a9a4c4152d33
+
+PublicKey = RSA-PSS-8
+Type = RSA
+Input = 30819f300d06092a864886f70d010101050003818d00308189028181495370a1fb18543c16d3631e3163255df62be6eee890d5f25509e4f778a8ea6fbbbcdf85dff64e0d972003ab3681fbba6dd41fd541829b2e582de9f2a4a4e0a2d0900bef4753db3cee0ee06c7dfae8b1d53b5953218f9cceea695b08668edeaadced9463b1d790d5ebf27e9115b46cad4d9a2b8efab0561b0810344739ada0733f0203010001
+
+Verify = RSA-PSS-8
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = a1dd230d8ead860199b6277c2ecfe3d95f6d9160
+Output = 0262ac254bfa77f3c1aca22c5179f8f040422b3c5bafd40a8f21cf0fa5a667ccd5993d42dbafb409c520e25fce2b1ee1e716577f1efa17f3da28052f40f0419b23106d7845aaf01125b698e7a4dfe92d3967bb00c4d0d35ba3552ab9a8b3eef07c7fecdbc5424ac4db1e20cb37d0b2744769940ea907e17fbbca673b20522380c5
+
+Verify = RSA-PSS-8
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = f6e68e53c602c5c65fa67b5aa6d786e5524b12ab
+Output = 2707b9ad5115c58c94e932e8ec0a280f56339e44a1b58d4ddcff2f312e5f34dcfe39e89c6a94dcee86dbbdae5b79ba4e0819a9e7bfd9d982e7ee6c86ee68396e8b3a14c9c8f34b178eb741f9d3f121109bf5c8172fada2e768f9ea1433032c004a8aa07eb990000a48dc94c8bac8aabe2b09b1aa46c0a2aa0e12f63fbba775ba7e
+
+Verify = RSA-PSS-8
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = d6f9fcd3ae27f32bb2c7c93536782eba52af1f76
+Output = 2ad20509d78cf26d1b6c406146086e4b0c91a91c2bd164c87b966b8faa42aa0ca446022323ba4b1a1b89706d7f4c3be57d7b69702d168ab5955ee290356b8c4a29ed467d547ec23cbadf286ccb5863c6679da467fc9324a151c7ec55aac6db4084f82726825cfe1aa421bc64049fb42f23148f9c25b2dc300437c38d428aa75f96
+
+Verify = RSA-PSS-8
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 7ff2a53ce2e2d900d468e498f230a5f5dd0020de
+Output = 1e24e6e58628e5175044a9eb6d837d48af1260b0520e87327de7897ee4d5b9f0df0be3e09ed4dea8c1454ff3423bb08e1793245a9df8bf6ab3968c8eddc3b5328571c77f091cc578576912dfebd164b9de5454fe0be1c1f6385b328360ce67ec7a05f6e30eb45c17c48ac70041d2cab67f0a2ae7aafdcc8d245ea3442a6300ccc7
+
+Verify = RSA-PSS-8
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 4eb309f7022ba0b03bb78601b12931ec7c1be8d3
+Output = 33341ba3576a130a50e2a5cf8679224388d5693f5accc235ac95add68e5eb1eec31666d0ca7a1cda6f70a1aa762c05752a51950cdb8af3c5379f18cfe6b5bc55a4648226a15e912ef19ad77adeea911d67cfefd69ba43fa4119135ff642117ba985a7e0100325e9519f1ca6a9216bda055b5785015291125e90dcd07a2ca9673ee
+
+Verify = RSA-PSS-8
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 65033bc2f67d6aba7d526acb873b8d9241e5e4d9
+Output = 1ed1d848fb1edb44129bd9b354795af97a069a7a00d0151048593e0c72c3517ff9ff2a41d0cb5a0ac860d736a199704f7cb6a53986a88bbd8abcc0076a2ce847880031525d449da2ac78356374c536e343faa7cba42a5aaa6506087791c06a8e989335aed19bfab2d5e67e27fb0c2875af896c21b6e8e7309d04e4f6727e69463e
+
+PublicKey = RSA-PSS-9
+Type = RSA
+Input = 3081df300d06092a864886f70d01010105000381cd003081c90281c100e6bd692ac96645790403fdd0f5beb8b9bf92ed10007fc365046419dd06c05c5b5b2f48ecf989e4ce269109979cbb40b4a0ad24d22483d1ee315ad4ccb1534268352691c524f6dd8e6c29d224cf246973aec86c5bf6b1401a850d1b9ad1bb8cbcec47b06f0f8c7f45d3fc8f319299c5433ddbc2b3053b47ded2ecd4a4caefd614833dc8bb622f317ed076b8057fe8de3f84480ad5e83e4a61904a4f248fb397027357e1d30e463139815c6fd4fd5ac5b8172a45230ecb6318a04f1455d84e5a8b0203010001
+
+Verify = RSA-PSS-9
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 2715a49b8b0012cd7aee84c116446e6dfe3faec0
+Output = 586107226c3ce013a7c8f04d1a6a2959bb4b8e205ba43a27b50f124111bc35ef589b039f5932187cb696d7d9a32c0c38300a5cdda4834b62d2eb240af33f79d13dfbf095bf599e0d9686948c1964747b67e89c9aba5cd85016236f566cc5802cb13ead51bc7ca6bef3b94dcbdbb1d570469771df0e00b1a8a06777472d2316279edae86474668d4e1efff95f1de61c6020da32ae92bbf16520fef3cf4d88f61121f24bbd9fe91b59caf1235b2a93ff81fc403addf4ebdea84934a9cdaf8e1a9e
+
+Verify = RSA-PSS-9
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 2dac956d53964748ac364d06595827c6b4f143cd
+Output = 80b6d643255209f0a456763897ac9ed259d459b49c2887e5882ecb4434cfd66dd7e1699375381e51cd7f554f2c271704b399d42b4be2540a0eca61951f55267f7c2878c122842dadb28b01bd5f8c025f7e228418a673c03d6bc0c736d0a29546bd67f786d9d692ccea778d71d98c2063b7a71092187a4d35af108111d83e83eae46c46aa34277e06044589903788f1d5e7cee25fb485e92949118814d6f2c3ee361489016f327fb5bc517eb50470bffa1afa5f4ce9aa0ce5b8ee19bf5501b958
+
+Verify = RSA-PSS-9
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 28d98c46cccafbd3bc04e72f967a54bd3ea12298
+Output = 484408f3898cd5f53483f80819efbf2708c34d27a8b2a6fae8b322f9240237f981817aca1846f1084daa6d7c0795f6e5bf1af59c38e1858437ce1f7ec419b98c8736adf6dd9a00b1806d2bd3ad0a73775e05f52dfef3a59ab4b08143f0df05cd1ad9d04bececa6daa4a2129803e200cbc77787caf4c1d0663a6c5987b605952019782caf2ec1426d68fb94ed1d4be816a7ed081b77e6ab330b3ffc073820fecde3727fcbe295ee61a050a343658637c3fd659cfb63736de32d9f90d3c2f63eca
+
+Verify = RSA-PSS-9
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 0866d2ff5a79f25ef668cd6f31b42dee421e4c0e
+Output = 84ebeb481be59845b46468bafb471c0112e02b235d84b5d911cbd1926ee5074ae0424495cb20e82308b8ebb65f419a03fb40e72b78981d88aad143053685172c97b29c8b7bf0ae73b5b2263c403da0ed2f80ff7450af7828eb8b86f0028bd2a8b176a4d228cccea18394f238b09ff758cc00bc04301152355742f282b54e663a919e709d8da24ade5500a7b9aa50226e0ca52923e6c2d860ec50ff480fa57477e82b0565f4379f79c772d5c2da80af9fbf325ece6fc20b00961614bee89a183e
+
+Verify = RSA-PSS-9
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 6a5b4be4cd36cc97dfde9995efbf8f097a4a991a
+Output = 82102df8cb91e7179919a04d26d335d64fbc2f872c44833943241de8454810274cdf3db5f42d423db152af7135f701420e39b494a67cbfd19f9119da233a23da5c6439b5ba0d2bc373eee3507001378d4a4073856b7fe2aba0b5ee93b27f4afec7d4d120921c83f606765b02c19e4d6a1a3b95fa4c422951be4f52131077ef17179729cddfbdb56950dbaceefe78cb16640a099ea56d24389eef10f8fecb31ba3ea3b227c0a86698bb89e3e9363905bf22777b2a3aa521b65b4cef76d83bde4c
+
+Verify = RSA-PSS-9
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = b9dfd1df76a461c51e6576c6c8ed0a923d1c50e7
+Output = a7fdb0d259165ca2c88d00bbf1028a867d337699d061193b17a9648e14ccbbaadeacaacdec815e7571294ebb8a117af205fa078b47b0712c199e3ad05135c504c24b81705115740802487992ffd511d4afc6b854491eb3f0dd523139542ff15c3101ee85543517c6a3c79417c67e2dd9aa741e9a29b06dcb593c2336b3670ae3afbac7c3e76e215473e866e338ca244de00b62624d6b9426822ceae9f8cc460895f41250073fd45c5a1e7b425c204a423a699159f6903e710b37a7bb2bc8049f
+
+PublicKey = RSA-PSS-10
+Type = RSA
+Input = 30820122300d06092a864886f70d01010105000382010f003082010a0282010100a5dd867ac4cb02f90b9457d48c14a770ef991c56c39c0ec65fd11afa8937cea57b9be7ac73b45c0017615b82d622e318753b6027c0fd157be12f8090fee2a7adcd0eef759f88ba4997c7a42d58c9aa12cb99ae001fe521c13bb5431445a8d5ae4f5e4c7e948ac227d3604071f20e577e905fbeb15dfaf06d1de5ae6253d63a6a2120b31a5da5dabc9550600e20f27d3739e2627925fea3cc509f21dff04e6eea4549c540d6809ff9307eede91fff58733d8385a237d6d3705a33e391900992070df7adf1357cf7e3700ce3667de83f17b8df1778db381dce09cb4ad058a511001a738198ee27cf55a13b754539906582ec8b174bd58d5d1f3d767c613721ae050203010001
+
+Verify = RSA-PSS-10
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 9596bb630cf6a8d4ea4600422b9eba8b13675dd4
+Output = 82c2b160093b8aa3c0f7522b19f87354066c77847abf2a9fce542d0e84e920c5afb49ffdfdace16560ee94a1369601148ebad7a0e151cf16331791a5727d05f21e74e7eb811440206935d744765a15e79f015cb66c532c87a6a05961c8bfad741a9a6657022894393e7223739796c02a77455d0f555b0ec01ddf259b6207fd0fd57614cef1a5573baaff4ec00069951659b85f24300a25160ca8522dc6e6727e57d019d7e63629b8fe5e89e25cc15beb3a647577559299280b9b28f79b0409000be25bbd96408ba3b43cc486184dd1c8e62553fa1af4040f60663de7f5e49c04388e257f1ce89c95dab48a315d9b66b1b7628233876ff2385230d070d07e1666
+
+Verify = RSA-PSS-10
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = b503319399277fd6c1c8f1033cbf04199ea21716
+Output = 14ae35d9dd06ba92f7f3b897978aed7cd4bf5ff0b585a40bd46ce1b42cd2703053bb9044d64e813d8f96db2dd7007d10118f6f8f8496097ad75e1ff692341b2892ad55a633a1c55e7f0a0ad59a0e203a5b8278aec54dd8622e2831d87174f8caff43ee6c46445345d84a59659bfb92ecd4c818668695f34706f66828a89959637f2bf3e3251c24bdba4d4b7649da0022218b119c84e79a6527ec5b8a5f861c159952e23ec05e1e717346faefe8b1686825bd2b262fb2531066c0de09acde2e4231690728b5d85e115a2f6b92b79c25abc9bd9399ff8bcf825a52ea1f56ea76dd26f43baafa18bfa92a504cbd35699e26d1dcc5a2887385f3c63232f06f3244c3
+
+Verify = RSA-PSS-10
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 50aaede8536b2c307208b275a67ae2df196c7628
+Output = 6e3e4d7b6b15d2fb46013b8900aa5bbb3939cf2c095717987042026ee62c74c54cffd5d7d57efbbf950a0f5c574fa09d3fc1c9f513b05b4ff50dd8df7edfa20102854c35e592180119a70ce5b085182aa02d9ea2aa90d1df03f2daae885ba2f5d05afdac97476f06b93b5bc94a1a80aa9116c4d615f333b098892b25fface266f5db5a5a3bcc10a824ed55aad35b727834fb8c07da28fcf416a5d9b2224f1f8b442b36f91e456fdea2d7cfe3367268de0307a4c74e924159ed33393d5e0655531c77327b89821bdedf880161c78cd4196b5419f7acc3f13e5ebf161b6e7c6724716ca33b85c2e25640192ac2859651d50bde7eb976e51cec828b98b6563b86bb
+
+Verify = RSA-PSS-10
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = aa0b72b8b371ddd10c8ae474425ccccf8842a294
+Output = 34047ff96c4dc0dc90b2d4ff59a1a361a4754b255d2ee0af7d8bf87c9bc9e7ddeede33934c63ca1c0e3d262cb145ef932a1f2c0a997aa6a34f8eaee7477d82ccf09095a6b8acad38d4eec9fb7eab7ad02da1d11d8e54c1825e55bf58c2a23234b902be124f9e9038a8f68fa45dab72f66e0945bf1d8bacc9044c6f07098c9fcec58a3aab100c805178155f030a124c450e5acbda47d0e4f10b80a23f803e774d023b0015c20b9f9bbe7c91296338d5ecb471cafb032007b67a60be5f69504a9f01abb3cb467b260e2bce860be8d95bf92c0c8e1496ed1e528593a4abb6df462dde8a0968dffe4683116857a232f5ebf6c85be238745ad0f38f767a5fdbf486fb
+
+Verify = RSA-PSS-10
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = fad3902c9750622a2bc672622c48270cc57d3ea8
+Output = 7e0935ea18f4d6c1d17ce82eb2b3836c55b384589ce19dfe743363ac9948d1f346b7bfddfe92efd78adb21faefc89ade42b10f374003fe122e67429a1cb8cbd1f8d9014564c44d120116f4990f1a6e38774c194bd1b8213286b077b0499d2e7b3f434ab12289c556684deed78131934bb3dd6537236f7c6f3dcb09d476be07721e37e1ceed9b2f7b406887bd53157305e1c8b4f84d733bc1e186fe06cc59b6edb8f4bd7ffefdf4f7ba9cfb9d570689b5a1a4109a746a690893db3799255a0cb9215d2d1cd490590e952e8c8786aa0011265252470c041dfbc3eec7c3cbf71c24869d115c0cb4a956f56d530b80ab589acfefc690751ddf36e8d383f83cedd2cc
+
+Verify = RSA-PSS-10
+RSAPadding = PSS
+MGF1Digest = SHA1
+Input = 122196deb5d122bd8c6fc781ff6924d7c695aade
+Output = 6d3b5b87f67ea657af21f75441977d2180f91b2c5f692de82955696a686730d9b9778d970758ccb26071c2209ffbd6125be2e96ea81b67cb9b9308239fda17f7b2b64ecda096b6b935640a5a1cb42a9155b1c9ef7a633a02c59f0d6ee59b852c43b35029e73c940ff0410e8f114eed46bbd0fae165e42be2528a401c3b28fd818ef3232dca9f4d2a0f5166ec59c42396d6c11dbc1215a56fa17169db9575343ef34f9de32a49cdc3174922f229c23e18e45df9353119ec4319cedce7a17c64088c1f6f52be29634100b3919d38f3d1ed94e6891e66a73b8fb849f5874df59459e298c7bbce2eee782a195aa66fe2d0732b25e595f57d3e061b1fc3e4063bf98f
+
+PrivateKey = RSA-OAEP-1
+Type = RSA
+Input = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100a8b3b284af8eb50b387034a860f146c4919f318763cd6c5598c8ae4811a1e0abc4c7e0b082d693a5e7fced675cf4668512772c0cbc64a742c6c630f533c8cc72f62ae833c40bf25842e984bb78bdbf97c0107d55bdb662f5c4e0fab9845cb5148ef7392dd3aaff93ae1e6b667bb3d4247616d4f5ba10d4cfd226de88d39f16fb020301000102818053339cfdb79fc8466a655c7316aca85c55fd8f6dd898fdaf119517ef4f52e8fd8e258df93fee180fa0e4ab29693cd83b152a553d4ac4d1812b8b9fa5af0e7f55fe7304df41570926f3311f15c4d65a732c483116ee3d3d2d0af3549ad9bf7cbfb78ad884f84d5beb04724dc7369b31def37d0cf539e9cfcdd3de653729ead5d1024100d32737e7267ffe1341b2d5c0d150a81b586fb3132bed2f8d5262864a9cb9f30af38be448598d413a172efb802c21acf1c11c520c2f26a471dcad212eac7ca39d024100cc8853d1d54da630fac004f471f281c7b8982d8224a490edbeb33d3e3d5cc93c4765703d1dd791642f1f116a0dd852be2419b2af72bfe9a030e860b0288b5d7702400e12bf1718e9cef5599ba1c3882fe8046a90874eefce8f2ccc20e4f2741fb0a33a3848aec9c9305fbecbd2d76819967d4671acc6431e4037968db37878e695c102410095297b0f95a2fa67d00707d609dfd4fc05c89dafc2ef6d6ea55bec771ea333734d9251e79082ecda866efef13c459e1a631386b7e354c899f5f112ca85d7158302404f456c502493bdc0ed2ab756a3a6ed4d67352a697d4216e93212b127a63d5411ce6fa98d5dbefd73263e3728142743818166ed7dd63687dd2a8ca1d2f4fbd8e1
+
+Decrypt = RSA-OAEP-1
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 354fe67b4a126d5d35fe36c777791a3f7ba13def484e2d3908aff722fad468fb21696de95d0be911c2d3174f8afcc201035f7b6d8e69402de5451618c21a535fa9d7bfc5b8dd9fc243f8cf927db31322d6e881eaa91a996170e657a05a266426d98c88003f8477c1227094a0d9fa1e8c4024309ce1ecccb5210035d47ac72e8a
+Output = 6628194e12073db03ba94cda9ef9532397d50dba79b987004afefe34
+
+Decrypt = RSA-OAEP-1
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 640db1acc58e0568fe5407e5f9b701dff8c3c91e716c536fc7fcec6cb5b71c1165988d4a279e1577d730fc7a29932e3f00c81515236d8d8e31017a7a09df4352d904cdeb79aa583adcc31ea698a4c05283daba9089be5491f67c1a4ee48dc74bbbe6643aef846679b4cb395a352d5ed115912df696ffe0702932946d71492b44
+Output = 750c4047f547e8e41411856523298ac9bae245efaf1397fbe56f9dd5
+
+Decrypt = RSA-OAEP-1
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 423736ed035f6026af276c35c0b3741b365e5f76ca091b4e8c29e2f0befee603595aa8322d602d2e625e95eb81b2f1c9724e822eca76db8618cf09c5343503a4360835b5903bc637e3879fb05e0ef32685d5aec5067cd7cc96fe4b2670b6eac3066b1fcf5686b68589aafb7d629b02d8f8625ca3833624d4800fb081b1cf94eb
+Output = d94ae0832e6445ce42331cb06d531a82b1db4baad30f746dc916df24d4e3c2451fff59a6423eb0e1d02d4fe646cf699dfd818c6e97b051
+
+Decrypt = RSA-OAEP-1
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 45ead4ca551e662c9800f1aca8283b0525e6abae30be4b4aba762fa40fd3d38e22abefc69794f6ebbbc05ddbb11216247d2f412fd0fba87c6e3acd888813646fd0e48e785204f9c3f73d6d8239562722dddd8771fec48b83a31ee6f592c4cfd4bc88174f3b13a112aae3b9f7b80e0fc6f7255ba880dc7d8021e22ad6a85f0755
+Output = 52e650d98e7f2a048b4f86852153b97e01dd316f346a19f67a85
+
+Decrypt = RSA-OAEP-1
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 36f6e34d94a8d34daacba33a2139d00ad85a9345a86051e73071620056b920e219005855a213a0f23897cdcd731b45257c777fe908202befdd0b58386b1244ea0cf539a05d5d10329da44e13030fd760dcd644cfef2094d1910d3f433e1c7c6dd18bc1f2df7f643d662fb9dd37ead9059190f4fa66ca39e869c4eb449cbdc439
+Output = 8da89fd9e5f974a29feffb462b49180f6cf9e802
+
+Decrypt = RSA-OAEP-1
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 42cee2617b1ecea4db3f4829386fbd61dafbf038e180d837c96366df24c097b4ab0fac6bdf590d821c9f10642e681ad05b8d78b378c0f46ce2fad63f74e0ad3df06b075d7eb5f5636f8d403b9059ca761b5c62bb52aa45002ea70baace08ded243b9d8cbd62a68ade265832b56564e43a6fa42ed199a099769742df1539e8255
+Output = 26521050844271
+
+PrivateKey = RSA-OAEP-2
+Type = RSA
+Input = 30820276020100300d06092a864886f70d0101010500048202603082025c02010002818101947c7fce90425f47279e70851f25d5e62316fe8a1df19371e3e628e260543e4901ef6081f68c0b8141190d2ae8daba7d1250ec6db636e944ec3722877c7c1d0a67f14b1694c5f0379451a43e49a32dde83670b73da91a1c99bc23b436a60055c610f0baf99c1a079565b95a3f1526632d1d4da60f20eda25e653c4f002766f4502030100010281800823f20fadb5da89088a9d00893e21fa4a1b11fbc93c64a3be0baaea97fb3b93c3ff713704c19c963c1d107aae99054739f79e02e186de86f87a6ddefea6d8ccd1d3c81a47bfa7255be20601a4a4b2f08a167b5e279d715b1b455bdd7eab245941d9768b9acefb3ccda5952da3cee72525b4501663a8ee15c9e992d92462fe3902410159dbde04a33ef06fb608b80b190f4d3e22bcc13ac8e4a081033abfa416edb0b338aa08b57309ea5a5240e7dc6e54378c69414c31d97ddb1f406db3769cc41a430241012b652f30403b38b40995fd6ff41a1acc8ada70373236b7202d39b2ee30cfb46db09511f6f307cc61cc21606c18a75b8a62f822df031ba0df0dafd5506f568bd70240436ef508de736519c2da4c580d98c82cb7452a3fb5efadc3b9c7789a1bc6584f795addbbd32439c74686552ecb6c2c307a4d3af7f539eec157248c7b31f1a2550241012b15a89f3dfb2b39073e73f02bdd0c1a7b379dd435f05cdde2eff9e462948b7cec62ee9050d5e0816e0785a856b49108dcb75f3683874d1ca6329a19013066ff02400270db17d5914b018d76118b24389a7350ec836b0063a21721236fd8edb6d89b51e7eeb87b611b7132cb7ea7356c23151c1e7751507c786d9ee1794170a8c8e8
+
+Decrypt = RSA-OAEP-2
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 0181af8922b9fcb4d79d92ebe19815992fc0c1439d8bcd491398a0f4ad3a329a5bd9385560db532683c8b7da04e4b12aed6aacdf471c34c9cda891addcc2df3456653aa6382e9ae59b54455257eb099d562bbe10453f2b6d13c59c02e10f1f8abb5da0d0570932dacf2d0901db729d0fefcc054e70968ea540c81b04bcaefe720e
+Output = 8ff00caa605c702830634d9a6c3d42c652b58cf1d92fec570beee7
+
+Decrypt = RSA-OAEP-2
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 018759ff1df63b2792410562314416a8aeaf2ac634b46f940ab82d64dbf165eee33011da749d4bab6e2fcd18129c9e49277d8453112b429a222a8471b070993998e758861c4d3f6d749d91c4290d332c7a4ab3f7ea35ff3a07d497c955ff0ffc95006b62c6d296810d9bfab024196c7934012c2df978ef299aba239940cba10245
+Output = 2d
+
+Decrypt = RSA-OAEP-2
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 018802bab04c60325e81c4962311f2be7c2adce93041a00719c88f957575f2c79f1b7bc8ced115c706b311c08a2d986ca3b6a9336b147c29c6f229409ddec651bd1fdd5a0b7f610c9937fdb4a3a762364b8b3206b4ea485fd098d08f63d4aa8bb2697d027b750c32d7f74eaf5180d2e9b66b17cb2fa55523bc280da10d14be2053
+Output = 74fc88c51bc90f77af9d5e9a4a70133d4b4e0b34da3c37c7ef8e
+
+Decrypt = RSA-OAEP-2
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 00a4578cbc176318a638fba7d01df15746af44d4f6cd96d7e7c495cbf425b09c649d32bf886da48fbaf989a2117187cafb1fb580317690e3ccd446920b7af82b31db5804d87d01514acbfa9156e782f867f6bed9449e0e9a2c09bcecc6aa087636965e34b3ec766f2fe2e43018a2fddeb140616a0e9d82e5331024ee0652fc7641
+Output = a7eb2a5036931d27d4e891326d99692ffadda9bf7efd3e34e622c4adc085f721dfe885072c78a203b151739be540fa8c153a10f00a
+
+Decrypt = RSA-OAEP-2
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 00ebc5f5fda77cfdad3c83641a9025e77d72d8a6fb33a810f5950f8d74c73e8d931e8634d86ab1246256ae07b6005b71b7f2fb98351218331ce69b8ffbdc9da08bbc9c704f876deb9df9fc2ec065cad87f9090b07acc17aa7f997b27aca48806e897f771d95141fe4526d8a5301b678627efab707fd40fbebd6e792a25613e7aec
+Output = 2ef2b066f854c33f3bdcbb5994a435e73d6c6c
+
+Decrypt = RSA-OAEP-2
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 010839ec20c27b9052e55befb9b77e6fc26e9075d7a54378c646abdf51e445bd5715de81789f56f1803d9170764a9e93cb78798694023ee7393ce04bc5d8f8c5a52c171d43837e3aca62f609eb0aa5ffb0960ef04198dd754f57f7fbe6abf765cf118b4ca443b23b5aab266f952326ac4581100644325f8b721acd5d04ff14ef3a
+Output = 8a7fb344c8b6cb2cf2ef1f643f9a3218f6e19bba89c0
+
+PrivateKey = RSA-OAEP-3
+Type = RSA
+Input = 30820277020100300d06092a864886f70d0101010500048202613082025d02010002818102b58fec039a860700a4d7b6462f93e6cdd491161ddd74f4e810b40e3c1652006a5c277b2774c11305a4cbab5a78efa57e17a86df7a3fa36fc4b1d2249f22ec7c2dd6a463232accea906d66ebe80b5704b10729da6f833234abb5efdd4a292cbfad33b4d33fa7a14b8c397b56e3acd21203428b77cdfa33a6da706b3d8b0fc43e9020301000102818015b48a5b5683a94670e23b5718f814fa0e13f85038f50711182cba61510581f3d22c7e232ef937e22e551d68b86e2f8cb1aad8be2e488f5df7efd279e3f568d4eaf36f80cf7141ace60fcc9113fb6c4a841fd50bbc7c512ffcbeff21487aa811eb3ca8c62005346a86de86bfa1d8a948fd3f348c22eaadf333c3ce6ce13208fd024101bf01d216d73595cf0270c2beb78d40a0d8447d31da919a983f7eea781b77d85fe371b3e9373e7b69217d3150a02d8958de7fad9d555160958b4454127e0e7eaf0241018d3399658166db3829816d7b295416759e9c91987f5b2d8aecd63b04b48bd7b2fcf229bb7f8a6dc88ba13dd2e39ad55b6d1a06160708f9700be80b8fd3744ce7024006c0a249d20a6f2ee75c88b494d53f6aae99aa427c88c28b163a769445e5f390cf40c274fd6ea6329a5ce7c7ce03a2158396ee2a7845786e09e2885a9728e4e5024100d1d27c29fedd92d86c348edd0ccbfac14f746e051ce1d1811df35d61f2ee1c97d4bf2804802f6427187ba8e90a8af44243b4079b03445e602e29fa5193e64fe90241008cb2f756bd8941b1d3b770e5ad31ee373b28acda69ff9b6f40fe578b9f1afb85836f9627d37acff73c2779e634bb26011c2c8f7f3361ae2a9ea65ed689e3639a
+
+Decrypt = RSA-OAEP-3
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 026a0485d96aebd96b4382085099b962e6a2bdec3d90c8db625e14372de85e2d5b7baab65c8faf91bb5504fb495afce5c988b3f6a52e20e1d6cbd3566c5cd1f2b8318bb542cc0ea25c4aab9932afa20760eaddec784396a07ea0ef24d4e6f4d37e5052a7a31e146aa480a111bbe926401307e00f410033842b6d82fe5ce4dfae80
+Output = 087820b569e8fa8d
+
+Decrypt = RSA-OAEP-3
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 024db89c7802989be0783847863084941bf209d761987e38f97cb5f6f1bc88da72a50b73ebaf11c879c4f95df37b850b8f65d7622e25b1b889e80fe80baca2069d6e0e1d829953fc459069de98ea9798b451e557e99abf8fe3d9ccf9096ebbf3e5255d3b4e1c6d2ecadf067a359eea86405acd47d5e165517ccafd47d6dbee4bf5
+Output = 4653acaf171960b01f52a7be63a3ab21dc368ec43b50d82ec3781e04
+
+Decrypt = RSA-OAEP-3
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 0239bce681032441528877d6d1c8bb28aa3bc97f1df584563618995797683844ca86664732f4bed7a0aab083aaabfb7238f582e30958c2024e44e57043b97950fd543da977c90cdde5337d618442f99e60d7783ab59ce6dd9d69c47ad1e962bec22d05895cff8d3f64ed5261d92b2678510393484990ba3f7f06818ae6ffce8a3a
+Output = d94cd0e08fa404ed89
+
+Decrypt = RSA-OAEP-3
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 02994c62afd76f498ba1fd2cf642857fca81f4373cb08f1cbaee6f025c3b512b42c3e8779113476648039dbe0493f9246292fac28950600e7c0f32edf9c81b9dec45c3bde0cc8d8847590169907b7dc5991ceb29bb0714d613d96df0f12ec5d8d3507c8ee7ae78dd83f216fa61de100363aca48a7e914ae9f42ddfbe943b09d9a0
+Output = 6cc641b6b61e6f963974dad23a9013284ef1
+
+Decrypt = RSA-OAEP-3
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 0162042ff6969592a6167031811a239834ce638abf54fec8b99478122afe2ee67f8c5b18b0339805bfdbc5a4e6720b37c59cfba942464c597ff532a119821545fd2e59b114e61daf71820529f5029cf524954327c34ec5e6f5ba7efcc4de943ab8ad4ed787b1454329f70db798a3a8f4d92f8274e2b2948ade627ce8ee33e43c60
+Output = df5151832b61f4f25891fb4172f328d2eddf8371ffcfdbe997939295f30eca6918017cfda1153bf7a6af87593223
+
+Decrypt = RSA-OAEP-3
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 00112051e75d064943bc4478075e43482fd59cee0679de6893eec3a943daa490b9691c93dfc0464b6623b9f3dbd3e70083264f034b374f74164e1a00763725e574744ba0b9db83434f31df96f6e2a26f6d8eba348bd4686c2238ac07c37aac3785d1c7eea2f819fd91491798ed8e9cef5e43b781b0e0276e37c43ff9492d005730
+Output = 3c3bad893c544a6d520ab022319188c8d504b7a788b850903b85972eaa18552e1134a7ad6098826254ff7ab672b3d8eb3158fac6d4cbaef1
+
+PrivateKey = RSA-OAEP-4
+Type = RSA
+Input = 30820277020100300d06092a864886f70d0101010500048202613082025d020100028181051240b6cc0004fa48d0134671c078c7c8dec3b3e2f25bc2564467339db38853d06b85eea5b2de353bff42ac2e46bc97fae6ac9618da9537a5c8f553c1e357625991d6108dcd7885fb3a25413f53efcad948cb35cd9b9ae9c1c67626d113d57dde4c5bea76bb5bb7de96c00d07372e9685a6d75cf9d239fa148d70931b5f3fb03902030100010281800411ffca3b7ca5e9e9be7fe38a85105e353896db05c5796aecd2a725161eb3651c8629a9b862b904d7b0c7b37f8cb5a1c2b54001018a00a1eb2cafe4ee4e9492c348bc2bedab4b9ebbf064e8eff322b9009f8eec653905f40df88a3cdc49d4567f75627d41aca624129b46a0b7c698e5e65f2b7ba102c749a10135b6540d04010241027458c19ec1636919e736c9af25d609a51b8f561d19c6bf6943dd1ee1ab8a4a3f232100bd40b88decc6ba235548b6ef792a11c9de823d0a7922c7095b6eba570102410210ee9b33ab61716e27d251bd465f4b35a1a232e2da00901c294bf22350ce490d099f642b5375612db63ba1f20386492bf04d34b3c22bceb909d13441b53b5139024039fa028b826e88c1121b750a8b242fa9a35c5b66bdfd1fa637d3cc48a84a4f457a194e7727e49f7bcc6e5a5a412657fc470c7322ebc37416ef458c307a8c09010241015d99a84195943979fa9e1be2c3c1b69f432f46fd03e47d5befbbbfd6b1d1371d83efb330a3e020942b2fed115e5d02be24fd92c9019d1cecd6dd4cf1e54cc899024101f0b7015170b3f5e42223ba30301c41a6d87cbb70e30cb7d3c67d25473db1f6cbf03e3f9126e3e97968279a865b2c2b426524cfc52a683d31ed30eb984be412ba
+
+Decrypt = RSA-OAEP-4
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 04cce19614845e094152a3fe18e54e3330c44e5efbc64ae16886cb1869014cc5781b1f8f9e045384d0112a135ca0d12e9c88a8e4063416deaae3844f60d6e96fe155145f4525b9a34431ca3766180f70e15a5e5d8e8b1a516ff870609f13f896935ced188279a58ed13d07114277d75c6568607e0ab092fd803a223e4a8ee0b1a8
+Output = 4a86609534ee434a6cbca3f7e962e76d455e3264c19f605f6e5ff6137c65c56d7fb344cd52bc93374f3d166c9f0c6f9c506bad19330972d2
+
+Decrypt = RSA-OAEP-4
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 0097b698c6165645b303486fbf5a2a4479c0ee85889b541a6f0b858d6b6597b13b854eb4f839af03399a80d79bda6578c841f90d645715b280d37143992dd186c80b949b775cae97370e4ec97443136c6da484e970ffdb1323a20847821d3b18381de13bb49aaea66530c4a4b8271f3eae172cd366e07e6636f1019d2a28aed15e
+Output = b0adc4f3fe11da59ce992773d9059943c03046497ee9d9f9a06df1166db46d98f58d27ec074c02eee6cbe2449c8b9fc5080c5c3f4433092512ec46aa793743c8
+
+Decrypt = RSA-OAEP-4
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 0301f935e9c47abcb48acbbe09895d9f5971af14839da4ff95417ee453d1fd77319072bb7297e1b55d7561cd9d1bb24c1a9a37c619864308242804879d86ebd001dce5183975e1506989b70e5a83434154d5cbfd6a24787e60eb0c658d2ac193302d1192c6e622d4a12ad4b53923bca246df31c6395e37702c6a78ae081fb9d065
+Output = bf6d42e701707b1d0206b0c8b45a1c72641ff12889219a82bdea965b5e79a96b0d0163ed9d578ec9ada20f2fbcf1ea3c4089d83419ba81b0c60f3606da99
+
+Decrypt = RSA-OAEP-4
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 02d110ad30afb727beb691dd0cf17d0af1a1e7fa0cc040ec1a4ba26a42c59d0a796a2e22c8f357ccc98b6519aceb682e945e62cb734614a529407cd452bee3e44fece8423cc19e55548b8b994b849c7ecde4933e76037e1d0ce44275b08710c68e430130b929730ed77e09b015642c5593f04e4ffb9410798102a8e96ffdfe11e4
+Output = fb2ef112f5e766eb94019297934794f7be2f6fc1c58e
+
+Decrypt = RSA-OAEP-4
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 00dbb8a7439d90efd919a377c54fae8fe11ec58c3b858362e23ad1b8a44310799066b99347aa525691d2adc58d9b06e34f288c170390c5f0e11c0aa3645959f18ee79e8f2be8d7ac5c23d061f18dd74b8c5f2a58fcb5eb0c54f99f01a83247568292536583340948d7a8c97c4acd1e98d1e29dc320e97a260532a8aa7a758a1ec2
+Output = 28ccd447bb9e85166dabb9e5b7d1adadc4b9d39f204e96d5e440ce9ad928bc1c2284
+
+Decrypt = RSA-OAEP-4
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 00a5ffa4768c8bbecaee2db77e8f2eec99595933545520835e5ba7db9493d3e17cddefe6a5f567624471908db4e2d83a0fbee60608fc84049503b2234a07dc83b27b22847ad8920ff42f674ef79b76280b00233d2b51b8cb2703a9d42bfbc8250c96ec32c051e57f1b4ba528db89c37e4c54e27e6e64ac69635ae887d9541619a9
+Output = f22242751ec6b1
+
+PrivateKey = RSA-OAEP-5
+Type = RSA
+Input = 30820279020100300d06092a864886f70d0101010500048202633082025f0201000281810aadf3f9c125e5d891f31ac448e993defe580f802b45f9d7f22ba5021e9c47576b5a1e68031ba9db4e6dabe4d96a1d6f3d267268cff408005f118efcadb99888d1c234467166b2a2b849a05a889c060ac0da0c5fae8b55f309ba62e703742fa0326f2d10b011021489ff497770190d895fd39f52293c39efd73a698bdab9f10ed902030100010281810256eb4cba7067f2d2be540dcdff4582a36b7d31d1c9099bb214b79848466a268f80f58a49ac04c0e3648934a0206c04537c19b236643a6082732144df75fa217588f794682be89168276dc726c5c0cbdb84d31bbf26d0a43af495717f7d528acfee341561f6ff3cae05c578f8470d9682f9c0d072f9f6068b56d5880f682be2c5024103b0d3962f6d17549cbfca11294348dcf0e7e39f8c2bc6824f2164b606d687860dae1e632393cfedf513228229069e2f60e4acd7e633a436063f82385f48993707024102e4c32e2f517269b7072309f00c0e31365f7ce28b236b82912df239abf39572cf0ed604b02982e53564c52d6a05397de5c052a2fddc141ef7189836346aeb331f024101e84b119d25161fa67b00256a5bd9b645d2b232ecb05b015180029a88622adc3f09b3aeacde6161ab7cde22c2ad26e7797df54e072cbd3b2673800b3e4338dbd5024100eb90aa1a40135b4cea07197cedc8819be1e7cbff2547662116f465a4a9f487ab12f3ba4fef13822265a65297d98b7bded9372e3ffe81a38b3e9600fed055754f0241012f7f8138f9404062eb85a42924520b38f5bb886a0196f48bb8dcea60fd92cc027f18e78158a34a5c5d5f860a0f6c04071a7d01312c065062f1eb48b79d1c83cb
+
+Decrypt = RSA-OAEP-5
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 036046a4a47d9ed3ba9a89139c105038eb7492b05a5d68bfd53accff4597f7a68651b47b4a4627d927e485eed7b4566420e8b409879e5d606eae251d22a5df799f7920bfc117b992572a53b1263146bcea03385cc5e853c9a101c8c3e1bda31a519807496c6cb5e5efb408823a352b8fa0661fb664efadd593deb99fff5ed000e5
+Output = af71a901e3a61d3132f0fc1fdb474f9ea6579257ffc24d164170145b3dbde8
+
+Decrypt = RSA-OAEP-5
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 03d6eb654edce615bc59f455265ed4e5a18223cbb9be4e4069b473804d5de96f54dcaaa603d049c5d94aa1470dfcd2254066b7c7b61ff1f6f6770e3215c51399fd4e34ec5082bc48f089840ad04354ae66dc0f1bd18e461a33cc1258b443a2837a6df26759aa2302334986f87380c9cc9d53be9f99605d2c9a97da7b0915a4a7ad
+Output = a3b844a08239a8ac41605af17a6cfda4d350136585903a417a79268760519a4b4ac3303ec73f0f87cfb32399
+
+Decrypt = RSA-OAEP-5
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 0770952181649f9f9f07ff626ff3a22c35c462443d905d456a9fd0bff43cac2ca7a9f554e9478b9acc3ac838b02040ffd3e1847de2e4253929f9dd9ee4044325a9b05cabb808b2ee840d34e15d105a3f1f7b27695a1a07a2d73fe08ecaaa3c9c9d4d5a89ff890d54727d7ae40c0ec1a8dd86165d8ee2c6368141016a48b55b6967
+Output = 308b0ecbd2c76cb77fc6f70c5edd233fd2f20929d629f026953bb62a8f4a3a314bde195de85b5f816da2aab074d26cb6acddf323ae3b9c678ac3cf12fbdde7
+
+Decrypt = RSA-OAEP-5
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 0812b76768ebcb642d040258e5f4441a018521bd96687e6c5e899fcd6c17588ff59a82cc8ae03a4b45b31299af1788c329f7dcd285f8cf4ced82606b97612671a45bedca133442144d1617d114f802857f0f9d739751c57a3f9ee400912c61e2e6992be031a43dd48fa6ba14eef7c422b5edc4e7afa04fdd38f402d1c8bb719abf
+Output = 15c5b9ee1185
+
+Decrypt = RSA-OAEP-5
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 07b60e14ec954bfd29e60d0047e789f51d57186c63589903306793ced3f68241c743529aba6a6374f92e19e0163efa33697e196f7661dfaaa47aac6bde5e51deb507c72c589a2ca1693d96b1460381249b2cdb9eac44769f2489c5d3d2f99f0ee3c7ee5bf64a5ac79c42bd433f149be8cb59548361640595513c97af7bc2509723
+Output = 21026e6800c7fa728fcaaba0d196ae28d7a2ac4ffd8abce794f0985f60c8a6737277365d3fea11db8923a2029a
+
+Decrypt = RSA-OAEP-5
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 08c36d4dda33423b2ed6830d85f6411ba1dcf470a1fae0ebefee7c089f256cef74cb96ea69c38f60f39abee44129bcb4c92de7f797623b20074e3d9c2899701ed9071e1efa0bdd84d4c3e5130302d8f0240baba4b84a71cc032f2235a5ff0fae277c3e8f9112bef44c9ae20d175fc9a4058bfc930ba31b02e2e4f444483710f24a
+Output = 541e37b68b6c8872b84c02
+
+PrivateKey = RSA-OAEP-6
+Type = RSA
+Input = 30820279020100300d06092a864886f70d0101010500048202633082025f02010002818112b17f6dad2ecd19ff46dc13f7860f09e0e0cfb677b38a52592305ceaf022c166db90d04ac29e33f7dd12d9faf66e0816bb63ead267cc7d46c17c37be214bca2a22d723a64e44407436b6fc965729aefc2554f376cd5dcea68293780a62bf39d0029485a160bbb9e5dc0972d21a504f52e5ee028aa416332f510b2e9cff5f722af02030100010281810295eca3560618369559cecd303aa9cfdafc1d9f06959df75ffef929aa896961bcd190dc6997eda7f5963e724d07b4dc11f3065e5ae97d96835112280b9084bb14f2a21ebd4e889d41b9c4132ec1956fcab8bb2fed0575884936522c5ff7d33261904824e7cadee4e0bb372d2457cf78e2bd1286228ff83f10731ce63c90cff3f9024104a6ce8b7358dfa69bdcf742617005afb5385f5f3a58a24ef74a22a8c05cb7cc38ebd4cc9d9a9d789a62cd0f60f0cb941d3423c9692efa4fe3adff290c4749a38b02410404c9a803371fedb4c5be39f3c00b009e5e08a63be1e40035cdaca5011cc701cf7eebcb99f0ffe17cfd0a4bf7befd2dd536ac946db797fdbc4abe8f29349b91ed024103961c8f760aa2bd5154c7aafd77225b3bacd0139ae7b5948ea3311fccd86fb95c75afa767284b9b2de559572f15d8d044c7eb83a1be5fadf2cc377c0d8475294b0241022197e066742196aabc03fa2feeb4e70b15cb787d617acd31bb75c7bc234ad706f7c48d2182d1f0ff9c228dcf41967b6c0ba6d2c0ad110a1b857831ec245e2cb102410401c4c0c53d45dbdb5e9d96d0fecf4275df0974bc4a0736b4a74c3269053efb686ace2406e22c9e058ddb4ae540627ae2fdb08261e8e7e4bcbc994daafa305c45
+
+Decrypt = RSA-OAEP-6
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 0630eebcd2856c24f798806e41f9e67345eda9ceda386acc9facaea1eeed06ace583709718d9d169fadf414d5c76f92996833ef305b75b1e4b95f662a20faedc3bae0c4827a8bf8a88edbd57ec203a27a841f02e43a615bab1a8cac0701de34debdef62a088089b55ec36ea7522fd3ec8d06b6a073e6df833153bc0aefd93bd1a3
+Output = 4046ca8baa3347ca27f49e0d81f9cc1d71be9ba517d4
+
+Decrypt = RSA-OAEP-6
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 0ebc37376173a4fd2f89cc55c2ca62b26b11d51c3c7ce49e8845f74e7607317c436bc8d23b9667dfeb9d087234b47bc6837175ae5c0559f6b81d7d22416d3e50f4ac533d8f0812f2db9e791fe9c775ac8b6ad0f535ad9ceb23a4a02014c58ab3f8d3161499a260f39348e714ae2a1d3443208fd8b722ccfdfb393e98011f99e63f
+Output = 5cc72c60231df03b3d40f9b57931bc31109f972527f28b19e7480c7288cb3c92b22512214e4be6c914792ddabdf57faa8aa7
+
+Decrypt = RSA-OAEP-6
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 0a98bf1093619394436cf68d8f38e2f158fde8ea54f3435f239b8d06b8321844202476aeed96009492480ce3a8d705498c4c8c68f01501dc81db608f60087350c8c3b0bd2e9ef6a81458b7c801b89f2e4fe99d4900ba6a4b5e5a96d865dc676c7755928794130d6280a8160a190f2df3ea7cf9aa0271d88e9e6905ecf1c5152d65
+Output = b20e651303092f4bccb43070c0f86d23049362ed96642fc5632c27db4a52e3d831f2ab068b23b149879c002f6bf3feee97591112562c
+
+Decrypt = RSA-OAEP-6
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 008e7a67cacfb5c4e24bec7dee149117f19598ce8c45808fef88c608ff9cd6e695263b9a3c0ad4b8ba4c95238e96a8422b8535629c8d5382374479ad13fa39974b242f9a759eeaf9c83ad5a8ca18940a0162ba755876df263f4bd50c6525c56090267c1f0e09ce0899a0cf359e88120abd9bf893445b3cae77d3607359ae9a52f8
+Output = 684e3038c5c041f7
+
+Decrypt = RSA-OAEP-6
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 00003474416c7b68bdf961c385737944d7f1f40cb395343c693cc0b4fe63b31fedf1eaeeac9ccc0678b31dc32e0977489514c4f09085f6298a9653f01aea4045ff582ee887be26ae575b73eef7f3774921e375a3d19adda0ca31aa1849887c1f42cac9677f7a2f4e923f6e5a868b38c084ef187594dc9f7f048fea2e02955384ab
+Output = 32488cb262d041d6e4dd35f987bf3ca696db1f06ac29a44693
+
+Decrypt = RSA-OAEP-6
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 0a026dda5fc8785f7bd9bf75327b63e85e2c0fdee5dadb65ebdcac9ae1de95c92c672ab433aa7a8e69ce6a6d8897fac4ac4a54de841ae5e5bbce7687879d79634cea7a30684065c714d52409b928256bbf53eabcd5231eb7259504537399bd29164b726d33a46da701360a4168a091ccab72d44a62fed246c0ffea5b1348ab5470
+Output = 50ba14be8462720279c306ba
+
+PrivateKey = RSA-OAEP-7
+Type = RSA
+Input = 30820278020100300d06092a864886f70d0101010500048202623082025e020100028181311179f0bcfc9b9d3ca315d00ef30d7bdd3a2cfae9911bfedcb948b3a4782d0732b6ab44aa4bf03741a644dc01bec3e69b01a033e675d8acd7c4925c6b1aec3119051dfd89762d215d45475ffcb59f908148623f37177156f6ae86dd7a7c5f43dc1e1f908254058a284a5f06c0021793a87f1ac5feff7dcaee69c5e51a3789e3730203010001028181070cfcff2feb8276e27432c45dfee48f49b7917d6530e1f0ca3460f32e0276174487c56e22a45d2500d7775495219d7d165a9cf3bd92c32af9a98d8dc9cc296800adc94a0a54fb40f34291bf84ee8ea12b6f109359c6d3542a50f9c767f5cfff05a681c2e656fb77caaadb4be9468d8abcd4df98f58e86d2053fa1349f748e21b102410749262c111cd470ec2566e6b3732fc09329469aa19071d3b9c01906514c6f1d26baa14beab0971c8b7e611a4f79009d6fea776928ca25285b0de3643d1a3f8c71024106bc1e50e96c02bf636e9eea8b899bbebf7651de77dd474c3e9bc23bad8182b61904c7d97dfbebfb1e00108878b6e67e415391d67942c2b2bf9b4435f88b0cb023024103bc7ea7f0aab143abc6ce8b97118636a30172e4cfe02c8fa0dda3b7baaf90f8092982985525f488bdfcb4bd726e22639ac64a3092ab7ffcbf1d5334cfa50b5bf102410262a6aa29c2a3c67dc5346c06381afd987aa3cc93cfbfecf54fdd9f9d787d7f59a523d398979da137a2f6381fe94801f7c94da21518dc34cb40870c4697994ad90240649d4c17b6ee1721e772d0389a559c3d3cdf9550d457c46b037b74641b1d52166af8a213c8396206cdfba4422f18d6f61dbcb5d214c971bf482aeb976a7370c2
+
+Decrypt = RSA-OAEP-7
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 1688e4ce7794bba6cb7014169ecd559cede2a30b56a52b68d9fe18cf1973ef97b2a03153951c755f6294aa49adbdb55845ab6875fb3986c93ecf927962840d282f9e54ce8b690f7c0cb8bbd73440d9571d1b16cd9260f9eab4783cc482e5223dc60973871783ec27b0ae0fd47732cbc286a173fc92b00fb4ba6824647cd93c85c1
+Output = 47aae909
+
+Decrypt = RSA-OAEP-7
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 1052ed397b2e01e1d0ee1c50bf24363f95e504f4a03434a08fd822574ed6b9736edbb5f390db10321479a8a139350e2bd4977c3778ef331f3e78ae118b268451f20a2f01d471f5d53c566937171b2dbc2d4bde459a5799f0372d6574239b2323d245d0bb81c286b63c89a361017337e4902f88a467f4c7f244bfd5ab46437ff3b6
+Output = 1d9b2e2223d9bc13bfb9f162ce735db48ba7c68f6822a0a1a7b6ae165834e7
+
+Decrypt = RSA-OAEP-7
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 2155cd843ff24a4ee8badb7694260028a490813ba8b369a4cbf106ec148e5298707f5965be7d101c1049ea8584c24cd63455ad9c104d686282d3fb803a4c11c1c2e9b91c7178801d1b6640f003f5728df007b8a4ccc92bce05e41a27278d7c85018c52414313a5077789001d4f01910b72aad05d220aa14a58733a7489bc54556b
+Output = d976fc
+
+Decrypt = RSA-OAEP-7
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 0ab14c373aeb7d4328d0aaad8c094d88b9eb098b95f21054a29082522be7c27a312878b637917e3d819e6c3c568db5d843802b06d51d9e98a2be0bf40c031423b00edfbff8320efb9171bd2044653a4cb9c5122f6c65e83cda2ec3c126027a9c1a56ba874d0fea23f380b82cf240b8cf540004758c4c77d934157a74f3fc12bfac
+Output = d4738623df223aa43843df8467534c41d013e0c803c624e263666b239bde40a5f29aeb8de79e3daa61dd0370f49bd4b013834b98212aef6b1c5ee373b3cb
+
+Decrypt = RSA-OAEP-7
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 028387a318277434798b4d97f460068df5298faba5041ba11761a1cb7316b24184114ec500257e2589ed3b607a1ebbe97a6cc2e02bf1b681f42312a33b7a77d8e7855c4a6de03e3c04643f786b91a264a0d6805e2cea91e68177eb7a64d9255e4f27e713b7ccec00dc200ebd21c2ea2bb890feae4942df941dc3f97890ed347478
+Output = bb47231ca5ea1d3ad46c99345d9a8a61
+
+Decrypt = RSA-OAEP-7
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 14c678a94ad60525ef39e959b2f3ba5c097a94ff912b67dbace80535c187abd47d075420b1872152bba08f7fc31f313bbf9273c912fc4c0149a9b0cfb79807e346eb332069611bec0ff9bcd168f1f7c33e77313cea454b94e2549eecf002e2acf7f6f2d2845d4fe0aab2e5a92ddf68c480ae11247935d1f62574842216ae674115
+Output = 2184827095d35c3f86f600e8e59754013296
+
+PrivateKey = RSA-OAEP-8
+Type = RSA
+Input = 30820279020100300d06092a864886f70d0101010500048202633082025f0201000281815bdf0e30d321dda5147f882408fa69195480df8f80d3f6e8bf5818504f36427ca9b1f5540b9c65a8f6974cf8447a244d9280201bb49fcbbe6378d1944cd227e230f96e3d10f819dcef276c64a00b2a4b6701e7d01de5fabde3b1e9a0df82f4631359cd22669647fbb1717246134ed7b497cfffbdc42b59c73a96ed90166212dff702030100010281810f7d1e9e5aaa25fd13e4a0663ae144e0d15f5cd18bcdb09df2cc7e64e3c5e915ad62645304161d098c715bb7ab8bd01d07eaf3fed7c7ed08af2a8a62ef44ab16b320e14af72a48f96afe262a0ae4cf65e635e910790cd4ee5cea768a4b2639f7e6f677b3f0bb6be32b75747d8909036f0264f58d401cdba131716157a75ecf633102410a02ef8448d9fad8bbd0d004c8c2aa9751ef9721c1b0d03236a54b0df947cbaed5a255ee9e8e20d491ea1723fe094704a9762e88afd16ebb5994412ca966dc4f9f0241092d362e7ed3a0bfd9e9fd0e6c0301b6df29159cf50cc83b9b0cf4d6eea71a61e002b46e0ae9f2de62d25b5d7452d498b81c9ac6fc58593d4c3fb4f5d72dfbb0a9024107c71410af103962db367404e37ae850baa4e9c29dd92145815294a67c7d1c6ded263aa030a9b633ae50303e14035d1af014123eba687820308d8ebc85b6957d7d024100ae2c75380c02c016ad05891b3301de881f28ae1171182b6b2c83bea7c515eca9ca298c7b1cab5817a597068fc85060de4da8a016378aae43c7f967bcc37904b902410598d1059e3ada4f6320752c09d805ff7d1f1ae0d017aeeee9cefa0d7dd7ff775e44b578322f6405d6211da19519666aa87fdc4cd8c88f6b6e3d67e961dcbba3d0
+
+Decrypt = RSA-OAEP-8
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 09b3683d8a2eb0fb295b62ed1fb9290b714457b7825319f4647872af889b30409472020ad12912bf19b11d4819f49614824ffd84d09c0a17e7d17309d12919790410aa2995699f6a86dbe3242b5acc23af45691080d6b1ae810fb3e3057087f0970092ce00be9562ff4053b6262ce0caa93e13723d2e3a5ba075d45f0d61b54b61
+Output = 050b755e5e6880f7b9e9d692a74c37aae449b31bfea6deff83747a897f6c2c825bb1adbf850a3c96994b5de5b33cbc7d4a17913a7967
+
+Decrypt = RSA-OAEP-8
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 2ecf15c97c5a15b1476ae986b371b57a24284f4a162a8d0c8182e7905e792256f1812ba5f83f1f7a130e42dcc02232844edc14a31a68ee97ae564a383a3411656424c5f62ddb646093c367be1fcda426cf00a06d8acb7e57776fbbd855ac3df506fc16b1d7c3f2110f3d8068e91e186363831c8409680d8da9ecd8cf1fa20ee39d
+Output = 4eb68dcd93ca9b19df111bd43608f557026fe4aa1d5cfac227a3eb5ab9548c18a06dded23f81825986b2fcd71109ecef7eff88873f075c2aa0c469f69c92bc
+
+Decrypt = RSA-OAEP-8
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 4bc89130a5b2dabb7c2fcf90eb5d0eaf9e681b7146a38f3173a3d9cfec52ea9e0a41932e648a9d69344c50da763f51a03c95762131e8052254dcd2248cba40fd31667786ce05a2b7b531ac9dac9ed584a59b677c1a8aed8c5d15d68c05569e2be780bf7db638fd2bfd2a85ab276860f3777338fca989ffd743d13ee08e0ca9893f
+Output = 8604ac56328c1ab5ad917861
+
+Decrypt = RSA-OAEP-8
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 2e456847d8fc36ff0147d6993594b9397227d577752c79d0f904fcb039d4d812fea605a7b574dd82ca786f93752348438ee9f5b5454985d5f0e1699e3e7ad175a32e15f03deb042ab9fe1dd9db1bb86f8c089ccb45e7ef0c5ee7ca9b7290ca6b15bed47039788a8a93ff83e0e8d6244c71006362deef69b6f416fb3c684383fbd0
+Output = fdda5fbf6ec361a9d9a4ac68af216a0686f438b1e0e5c36b955f74e107f39c0dddcc
+
+Decrypt = RSA-OAEP-8
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 1fb9356fd5c4b1796db2ebf7d0d393cc810adf6145defc2fce714f79d93800d5e2ac211ea8bbecca4b654b94c3b18b30dd576ce34dc95436ef57a09415645923359a5d7b4171ef22c24670f1b229d3603e91f76671b7df97e7317c97734476d5f3d17d21cf82b5ba9f83df2e588d36984fd1b584468bd23b2e875f32f68953f7b2
+Output = 4a5f4914bee25de3c69341de07
+
+Decrypt = RSA-OAEP-8
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 3afd9c6600147b21798d818c655a0f4c9212db26d0b0dfdc2a7594ccb3d22f5bf1d7c3e112cd73fc7d509c7a8bafdd3c274d1399009f9609ec4be6477e453f075aa33db382870c1c3409aef392d7386ae3a696b99a94b4da0589447e955d16c98b17602a59bd736279fcd8fb280c4462d590bfa9bf13fed570eafde97330a2c210
+Output = 8e07d66f7b880a72563abcd3f35092bc33409fb7f88f2472be
+
+PrivateKey = RSA-OAEP-9
+Type = RSA
+Input = 30820397020100300d06092a864886f70d0101010500048203813082037d0201000281c100cf2cd41e34ca3a728ea5cb8aff64c36d27bdef5364e336fd68d3123c5a196a8c287013e853d5156d58d151954520fb4f6d7b17abb6817765909c576119659d902b1906ed8a2b10c155c24d124528dab9eeae379beac66e4a411786dcb8fd0062ebc030de1219a04c2a8c1b7dd3131e4d6b6caee2e31a5ed41ac1509b2ef1ee2ab18364be568ca941c25ecc84ff9d643b5ec1aaae102a20d73f479b780fd6da91075212d9eac03a0674d899eba2e431f4c44b615b6ba2232bd4b33baed73d625d02030100010281c0198c141e23715a92bccf6a119a5bc11389468d2811f548d727e17b4ab0eb986d6f211efb53b71f7ccbea87ee69c75ee615008c5332deb52bf390abdfbfe37d7205368159b2638c1de326e21d22251f0fb5848b3bf15005d2a74330f0afe916ee62ccc1344d1d83a709e60676273840f7f377424a5e0a4da75f01b31ff76819cf9cbfdd215243c3917c03ef38199312e567b3bf7aed3ab457f371ef8a1423f45b68c6e282ec111bba2833b987fd69fad83bc1b8c613c5e1ea16c11ed125ea7ec1026100fc8d6c04bec4eb9a8192ca7900cbe536e2e8b519decf33b2459798c6909df4f176db7d23190fc72b8865a718af895f1bcd9145298027423b605e70a47cf58390a8c3e88fc8c48e8b32e3da210dfbe3e881ea5674b6a348c21e93f9e55ea65efd026100d200d45e788aacea606a401d0460f87dd5c1027e12dc1a0d7586e8939d9cf789b40f51ac0442961de7d21cc21e05c83155c1f2aa9193387cfdf956cb48d153ba270406f9bbba537d4987d9e2f9942d7a14cbfffea74fecdda928d23e259f5ee1026100db16802f79a2f0d45f358d69fd33e44b81fae828622e93a54253e997d01b0743759da0e812b4aa4e6c8beab2328d5431955a418a67ff26a8c5c807a5da354e05ef31cc8cf758f463732950b03e265726fb94e39d6a572a26244ab08db75752ad026100a0a317cfe7df1423f87a6dee8451f4e2b4a67e5497f29b4f1e4e830b9fadd9401167026f5596e5a39c97817e0f5f16e27e19ec9902e01d7ea6fb9aa3c760afee1e381b69de6ac9c07585a06ad9c4ba00bf75c8ad2fa898a479e80ae294fed2a102600b21f335c353342eb44c3aa24445780c2d655b940174cae38c7c8a4e6493c0ba9fd303748267b083b9a7a6cb61e42db362b8c9896db7064e02ad5ae61587da15b4649c90594909feb37dbcb654beb7268ec801e5a8b4aa3911bebd88542f05be
+
+Decrypt = RSA-OAEP-9
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 267bcd118acab1fc8ba81c85d73003cb8610fa55c1d97da8d48a7c7f06896a4db751aa284255b9d36ad65f37653d829f1b37f97b8001942545b2fc2c55a7376ca7a1be4b1760c8e05a33e5aa2526b8d98e317088e7834c755b2a59b12631a182c05d5d43ab1779264f8456f515ce57dfdf512d5493dab7b7338dc4b7d78db9c091ac3baf537a69fc7f549d979f0eff9a94fda4169bd4d1d19a69c99e33c3b55490d501b39b1edae118ff6793a153261584d3a5f39f6e682e3d17c8cd1261fa72
+Output = f735fd55ba92592c3b52b8f9c4f69aaa1cbef8fe88add095595412467f9cf4ec0b896c59eda16210e7549c8abb10cdbc21a12ec9b6b5b8fd2f10399eb6
+
+Decrypt = RSA-OAEP-9
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 93ac9f0671ec29acbb444effc1a5741351d60fdb0e393fbf754acf0de49761a14841df7772e9bc82773966a1584c4d72baea00118f83f35cca6e537cbd4d811f5583b29783d8a6d94cd31be70d6f526c10ff09c6fa7ce069795a3fcd0511fd5fcb564bcc80ea9c78f38b80012539d8a4ddf6fe81e9cddb7f50dbbbbcc7e5d86097ccf4ec49189fb8bf318be6d5a0715d516b49af191258cd32dc833ce6eb4673c03a19bbace88cc54895f636cc0c1ec89096d11ce235a265ca1764232a689ae8
+Output = 81b906605015a63aabe42ddf11e1978912f5404c7474b26dce3ed482bf961ecc818bf420c54659
+
+Decrypt = RSA-OAEP-9
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 81ebdd95054b0c822ef9ad7693f5a87adfb4b4c4ce70df2df84ed49c04da58ba5fc20a19e1a6e8b7a3900b22796dc4e869ee6b42792d15a8eceb56c09c69914e813cea8f6931e4b8ed6f421af298d595c97f4789c7caa612c7ef360984c21b93edc5401068b5af4c78a8771b984d53b8ea8adf2f6a7d4a0ba76c75e1dd9f658f20ded4a46071d46d7791b56803d8fea7f0b0f8e41ae3f09383a6f9585fe7753eaaffd2bf94563108beecc207bbb535f5fcc705f0dde9f708c62f49a9c90371d3
+Output = fd326429df9b890e09b54b18b8f34f1e24
+
+Decrypt = RSA-OAEP-9
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = bcc35f94cde66cb1136625d625b94432a35b22f3d2fa11a613ff0fca5bd57f87b902ccdc1cd0aebcb0715ee869d1d1fe395f6793003f5eca465059c88660d446ff5f0818552022557e38c08a67ead991262254f10682975ec56397768537f4977af6d5f6aaceb7fb25dec5937230231fd8978af49119a29f29e424ab8272b47562792d5c94f774b8829d0b0d9f1a8c9eddf37574d5fa248eefa9c5271fc5ec2579c81bdd61b410fa61fe36e424221c113addb275664c801d34ca8c6351e4a858
+Output = f1459b5f0c92f01a0f723a2e5662484d8f8c0a20fc29dad6acd43bb5f3effdf4e1b63e07fdfe6628d0d74ca19bf2d69e4a0abf86d293925a796772f8088e
+
+Decrypt = RSA-OAEP-9
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 232afbc927fa08c2f6a27b87d4a5cb09c07dc26fae73d73a90558839f4fd66d281b87ec734bce237ba166698ed829106a7de6942cd6cdce78fed8d2e4d81428e66490d036264cef92af941d3e35055fe3981e14d29cbb9a4f67473063baec79a1179f5a17c9c1832f2838fd7d5e59bb9659d56dce8a019edef1bb3accc697cc6cc7a778f60a064c7f6f5d529c6210262e003de583e81e3167b89971fb8c0e15d44fffef89b53d8d64dd797d159b56d2b08ea5307ea12c241bd58d4ee278a1f2e
+Output = 53e6e8c729d6f9c319dd317e74b0db8e4ccca25f3c8305746e137ac63a63ef3739e7b595abb96e8d55e54f7bd41ab433378ffb911d
+
+Decrypt = RSA-OAEP-9
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 438cc7dc08a68da249e42505f8573ba60e2c2773d5b290f4cf9dff718e842081c383e67024a0f29594ea987b9d25e4b738f285970d195abb3a8c8054e3d79d6b9c9a8327ba596f1259e27126674766907d8d582ff3a8476154929adb1e6d1235b2ccb4ec8f663ba9cc670a92bebd853c8dbf69c6436d016f61add836e94732450434207f9fd4c43dec2a12a958efa01efe2669899b5e604c255c55fb7166de5589e369597bb09168c06dd5db177e06a1740eb2d5c82faeca6d92fcee9931ba9f
+Output = b6b28ea2198d0c1008bc64
+
+PrivateKey = RSA-OAEP-10
+Type = RSA
+Input = 308204bd020100300d06092a864886f70d0101010500048204a7308204a30201000282010100ae45ed5601cec6b8cc05f803935c674ddbe0d75c4c09fd7951fc6b0caec313a8df39970c518bffba5ed68f3f0d7f22a4029d413f1ae07e4ebe9e4177ce23e7f5404b569e4ee1bdcf3c1fb03ef113802d4f855eb9b5134b5a7c8085adcae6fa2fa1417ec3763be171b0c62b760ede23c12ad92b980884c641f5a8fac26bdad4a03381a22fe1b754885094c82506d4019a535a286afeb271bb9ba592de18dcf600c2aeeae56e02f7cf79fc14cf3bdc7cd84febbbf950ca90304b2219a7aa063aefa2c3c1980e560cd64afe779585b6107657b957857efde6010988ab7de417fc88d8f384c4e6e72c3f943e0c31c0c4a5cc36f879d8a3ac9d7d59860eaada6b83bb020301000102820100056b04216fe5f354ac77250a4b6b0c8525a85c59b0bd80c56450a22d5f438e596a333aa875e291dd43f48cb88b9d5fc0d499f9fcd1c397f9afc070cd9e398c8d19e61db7c7410a6b2675dfbf5d345b804d201add502d5ce2dfcb091ce9997bbebe57306f383e4d588103f036f7e85d1934d152a323e4a8db451d6f4a5b1b0f102cc150e02feee2b88dea4ad4c1baccb24d84072d14e1d24a6771f7408ee30564fb86d4393a34bcf0b788501d193303f13a2284b001f0f649eaf79328d4ac5c430ab4414920a9460ed1b7bc40ec653e876d09abc509ae45b525190116a0c26101848298509c1c3bf3a483e7274054e15e97075036e989f60932807b5257751e7902818100ecf5aecd1e5515fffacbd75a2816c6ebf49018cdfb4638e185d66a7396b6f8090f8018c7fd95cc34b857dc17f0cc6516bb1346ab4d582cadad7b4103352387b70338d084047c9d9539b6496204b3dd6ea442499207bec01f964287ff6336c3984658336846f56e46861881c10233d2176bf15a5e96ddc780bc868aa77d3ce76902818100bc46c464fc6ac4ca783b0eb08a3c841b772f7e9b2f28babd588ae885e1a0c61e4858a0fb25ac299990f35be85164c259ba1175cdd7192707135184992b6c29b746dd0d2cabe142835f7d148cc161524b4a09946d48b828473f1ce76b6cb6886c345c03e05f41d51b5c3a90a3f24073c7d74a4fe25d9cf21c75960f3fc386318302818100c73564571d00fb15d08a3de9957a50915d7126e9442dacf42bc82e862e5673ff6a008ed4d2e374617df89f17a160b43b7fda9cb6b6b74218609815f7d45ca263c159aa32d272d127faf4bc8ca2d77378e8aeb19b0ad7da3cb3de0ae7314980f62b6d4b0a875d1df03c1bae39ccd833ef6cd7e2d9528bf084d1f969e794e9f6c10281802658b37f6df9c1030be1db68117fa9d87e39ea2b693b7e6d3a2f70947413eec6142e18fb8dfcb6ac545d7c86a0ad48f8457170f0efb26bc48126c53efd1d16920198dc2a1107dc282db6a80cd3062360ba3fa13f70e4312ff1a6cd6b8fc4cd9c5c3db17c6d6a57212f73ae29f619327bad59b153858585ba4e28b60a62a45e490281806f38526b3925085534ef3e415a836ede8b86158a2c7cbfeccb0bd834304fec683ba8d4f479c433d43416e63269623cea100776d85aff401d3fff610ee65411ce3b1363d63a9709eede42647cea561493d54570a879c18682cd97710b96205ec31117d73b5f36223fadd6e8ba90dd7c0ee61d44e163251e20c7f66eb305117cb8
+
+Decrypt = RSA-OAEP-10
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 53ea5dc08cd260fb3b858567287fa91552c30b2febfba213f0ae87702d068d19bab07fe574523dfb42139d68c3c5afeee0bfe4cb7969cbf382b804d6e61396144e2d0e60741f8993c3014b58b9b1957a8babcd23af854f4c356fb1662aa72bfcc7e586559dc4280d160c126785a723ebeebeff71f11594440aaef87d10793a8774a239d4a04c87fe1467b9daf85208ec6c7255794a96cc29142f9a8bd418e3c1fd67344b0cd0829df3b2bec60253196293c6b34d3f75d32f213dd45c6273d505adf4cced1057cb758fc26aeefa441255ed4e64c199ee075e7f16646182fdb464739b68ab5daff0e63e9552016824f054bf4d3c8c90a97bb6b6553284eb429fcc
+Output = 8bba6bf82a6c0f86d5f1756e97956870b08953b06b4eb205bc1694ee
+
+Decrypt = RSA-OAEP-10
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = a2b1a430a9d657e2fa1c2bb5ed43ffb25c05a308fe9093c01031795f5874400110828ae58fb9b581ce9dddd3e549ae04a0985459bde6c626594e7b05dc4278b2a1465c1368408823c85e96dc66c3a30983c639664fc4569a37fe21e5a195b5776eed2df8d8d361af686e750229bbd663f161868a50615e0c337bec0ca35fec0bb19c36eb2e0bbcc0582fa1d93aacdb061063f59f2ce1ee43605e5d89eca183d2acdfe9f81011022ad3b43a3dd417dac94b4e11ea81b192966e966b182082e71964607b4f8002f36299844a11f2ae0faeac2eae70f8f4f98088acdcd0ac556e9fccc511521908fad26f04c64201450305778758b0538bf8b5bb144a828e629795
+Output = e6ad181f053b58a904f2457510373e57
+
+Decrypt = RSA-OAEP-10
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 9886c3e6764a8b9a84e84148ebd8c3b1aa8050381a78f668714c16d9cfd2a6edc56979c535d9dee3b44b85c18be8928992371711472216d95dda98d2ee8347c9b14dffdff84aa48d25ac06f7d7e65398ac967b1ce90925f67dce049b7f812db0742997a74d44fe81dbe0e7a3feaf2e5c40af888d550ddbbe3bc20657a29543f8fc2913b9bd1a61b2ab2256ec409bbd7dc0d17717ea25c43f42ed27df8738bf4afc6766ff7aff0859555ee283920f4c8a63c4a7340cbafddc339ecdb4b0515002f96c932b5b79167af699c0ad3fccfdf0f44e85a70262bf2e18fe34b850589975e867ff969d48eabf212271546cdc05a69ecb526e52870c836f307bd798780ede
+Output = 510a2cf60e866fa2340553c94ea39fbc256311e83e94454b4124
+
+Decrypt = RSA-OAEP-10
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 6318e9fb5c0d05e5307e1683436e903293ac4642358aaa223d7163013aba87e2dfda8e60c6860e29a1e92686163ea0b9175f329ca3b131a1edd3a77759a8b97bad6a4f8f4396f28cf6f39ca58112e48160d6e203daa5856f3aca5ffed577af499408e3dfd233e3e604dbe34a9c4c9082de65527cac6331d29dc80e0508a0fa7122e7f329f6cca5cfa34d4d1da417805457e008bec549e478ff9e12a763c477d15bbb78f5b69bd57830fc2c4ed686d79bc72a95d85f88134c6b0afe56a8ccfbc855828bb339bd17909cf1d70de3335ae07039093e606d655365de6550b872cd6de1d440ee031b61945f629ad8a353b0d40939e96a3c450d2a8d5eee9f678093c8
+Output = bcdd190da3b7d300df9a06e22caae2a75f10c91ff667b7c16bde8b53064a2649a94045c9
+
+Decrypt = RSA-OAEP-10
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 75290872ccfd4a4505660d651f56da6daa09ca1301d890632f6a992f3d565cee464afded40ed3b5be9356714ea5aa7655f4a1366c2f17c728f6f2c5a5d1f8e28429bc4e6f8f2cff8da8dc0e0a9808e45fd09ea2fa40cb2b6ce6ffff5c0e159d11b68d90a85f7b84e103b09e682666480c657505c0929259468a314786d74eab131573cf234bf57db7d9e66cc6748192e002dc0deea930585f0831fdcd9bc33d51f79ed2ffc16bcf4d59812fcebcaa3f9069b0e445686d644c25ccf63b456ee5fa6ffe96f19cdf751fed9eaf35957754dbf4bfea5216aa1844dc507cb2d080e722eba150308c2b5ff1193620f1766ecf4481bafb943bd292877f2136ca494aba0
+Output = a7dd6c7dc24b46f9dd5f1e91ada4c3b3df947e877232a9
+
+Decrypt = RSA-OAEP-10
+RSAPadding = OAEP
+MGF1Digest = SHA1
+Input = 2d207a73432a8fb4c03051b3f73b28a61764098dfa34c47a20995f8115aa6816679b557e82dbee584908c6e69782d7deb34dbd65af063d57fca76a5fd069492fd6068d9984d209350565a62e5c77f23038c12cb10c6634709b547c46f6b4a709bd85ca122d74465ef97762c29763e06dbc7a9e738c78bfca0102dc5e79d65b973f28240caab2e161a78b57d262457ed8195d53e3c7ae9da021883c6db7c24afdd2322eac972ad3c354c5fcef1e146c3a0290fb67adf007066e00428d2cec18ce58f9328698defef4b2eb5ec76918fde1c198cbb38b7afc67626a9aefec4322bfd90d2563481c9a221f78c8272c82d1b62ab914e1c69f6af6ef30ca5260db4a46
+Output = eaf1a73a1b0c4609537de69cd9228bbcfb9a8ca8c6c3efaf056fe4a7f4634ed00b7c39ec6922d7b8ea2c04ebac
diff --git a/src/crypto/rsa/padding.c b/src/crypto/rsa/padding.c
index 3ed19adc..678457bf 100644
--- a/src/crypto/rsa/padding.c
+++ b/src/crypto/rsa/padding.c
@@ -530,7 +530,7 @@ int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const uint8_t *mHash,
EM++;
emLen--;
}
- if (emLen < ((int)hLen + sLen + 2)) {
+ if (emLen < (int)hLen + 2 || emLen < ((int)hLen + sLen + 2)) {
/* sLen can be small negative */
OPENSSL_PUT_ERROR(RSA, RSA_R_DATA_TOO_LARGE);
goto err;
diff --git a/src/crypto/x509/x509_lu.c b/src/crypto/x509/x509_lu.c
index 9e459640..f2371bdd 100644
--- a/src/crypto/x509/x509_lu.c
+++ b/src/crypto/x509/x509_lu.c
@@ -356,8 +356,12 @@ int X509_STORE_add_cert(X509_STORE *ctx, X509 *x)
OPENSSL_free(obj);
OPENSSL_PUT_ERROR(X509, X509_R_CERT_ALREADY_IN_HASH_TABLE);
ret = 0;
- } else
- sk_X509_OBJECT_push(ctx->objs, obj);
+ } else if (!sk_X509_OBJECT_push(ctx->objs, obj)) {
+ X509_OBJECT_free_contents(obj);
+ OPENSSL_free(obj);
+ OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
+ ret = 0;
+ }
CRYPTO_MUTEX_unlock_write(&ctx->objs_lock);
@@ -388,8 +392,12 @@ int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x)
OPENSSL_free(obj);
OPENSSL_PUT_ERROR(X509, X509_R_CERT_ALREADY_IN_HASH_TABLE);
ret = 0;
- } else
- sk_X509_OBJECT_push(ctx->objs, obj);
+ } else if (!sk_X509_OBJECT_push(ctx->objs, obj)) {
+ X509_OBJECT_free_contents(obj);
+ OPENSSL_free(obj);
+ OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
+ ret = 0;
+ }
CRYPTO_MUTEX_unlock_write(&ctx->objs_lock);
diff --git a/src/crypto/x509v3/v3_cpols.c b/src/crypto/x509v3/v3_cpols.c
index 7de54962..4def530a 100644
--- a/src/crypto/x509v3/v3_cpols.c
+++ b/src/crypto/x509v3/v3_cpols.c
@@ -468,9 +468,15 @@ static void print_notice(BIO *out, USERNOTICE *notice, int indent)
num = sk_ASN1_INTEGER_value(ref->noticenos, i);
if (i)
BIO_puts(out, ", ");
- tmp = i2s_ASN1_INTEGER(NULL, num);
- BIO_puts(out, tmp);
- OPENSSL_free(tmp);
+ if (num == NULL)
+ BIO_puts(out, "(null)");
+ else {
+ tmp = i2s_ASN1_INTEGER(NULL, num);
+ if (tmp == NULL)
+ return;
+ BIO_puts(out, tmp);
+ OPENSSL_free(tmp);
+ }
}
BIO_puts(out, "\n");
}
diff --git a/src/include/openssl/asn1.h b/src/include/openssl/asn1.h
index 42386e0c..8a4430a3 100644
--- a/src/include/openssl/asn1.h
+++ b/src/include/openssl/asn1.h
@@ -257,9 +257,6 @@ typedef struct ASN1_ENCODING_st
unsigned alias_only_on_next_parse:1;
} ASN1_ENCODING;
-/* Used with ASN1 LONG type: if a long is set to this it is omitted */
-#define ASN1_LONG_UNDEF 0x7fffffffL
-
#define STABLE_FLAGS_MALLOC 0x01
#define STABLE_NO_MASK 0x02
#define DIRSTRING_TYPE \
diff --git a/src/include/openssl/asn1t.h b/src/include/openssl/asn1t.h
index 10d32c43..29e2de7d 100644
--- a/src/include/openssl/asn1t.h
+++ b/src/include/openssl/asn1t.h
@@ -849,10 +849,6 @@ DECLARE_ASN1_ITEM(ASN1_BOOLEAN)
DECLARE_ASN1_ITEM(ASN1_TBOOLEAN)
DECLARE_ASN1_ITEM(ASN1_FBOOLEAN)
DECLARE_ASN1_ITEM(ASN1_SEQUENCE)
-DECLARE_ASN1_ITEM(CBIGNUM)
-DECLARE_ASN1_ITEM(BIGNUM)
-DECLARE_ASN1_ITEM(LONG)
-DECLARE_ASN1_ITEM(ZLONG)
DECLARE_STACK_OF(ASN1_VALUE)
diff --git a/src/include/openssl/bytestring.h b/src/include/openssl/bytestring.h
index bab268b5..4aea6bfb 100644
--- a/src/include/openssl/bytestring.h
+++ b/src/include/openssl/bytestring.h
@@ -138,7 +138,7 @@ OPENSSL_EXPORT int CBS_get_u24_length_prefixed(CBS *cbs, CBS *out);
#define CBS_ASN1_SET (0x11 | CBS_ASN1_CONSTRUCTED)
#define CBS_ASN1_NUMERICSTRING 0x12
#define CBS_ASN1_PRINTABLESTRING 0x13
-#define CBS_ASN1_T16STRING 0x14
+#define CBS_ASN1_T61STRING 0x14
#define CBS_ASN1_VIDEOTEXSTRING 0x15
#define CBS_ASN1_IA5STRING 0x16
#define CBS_ASN1_UTCTIME 0x17
diff --git a/src/include/openssl/conf.h b/src/include/openssl/conf.h
index 8b82fd45..b8ec12e8 100644
--- a/src/include/openssl/conf.h
+++ b/src/include/openssl/conf.h
@@ -180,5 +180,6 @@ BORINGSSL_MAKE_DELETER(CONF, NCONF_free)
#define CONF_R_NO_CLOSE_BRACE 103
#define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 104
#define CONF_R_VARIABLE_HAS_NO_VALUE 105
+#define CONF_R_VARIABLE_EXPANSION_TOO_LONG 106
#endif /* OPENSSL_HEADER_THREAD_H */
diff --git a/src/include/openssl/ssl.h b/src/include/openssl/ssl.h
index 611d3b24..11f8ef2e 100644
--- a/src/include/openssl/ssl.h
+++ b/src/include/openssl/ssl.h
@@ -2017,7 +2017,7 @@ OPENSSL_EXPORT int SSL_CTX_set_tlsext_ticket_key_cb(
/* ssl_ticket_aead_result_t enumerates the possible results from decrypting a
* ticket with an |SSL_TICKET_AEAD_METHOD|. */
enum ssl_ticket_aead_result_t {
- /* ssl_ticket_aead_success indicates the the ticket was successfully
+ /* ssl_ticket_aead_success indicates that the ticket was successfully
* decrypted. */
ssl_ticket_aead_success,
/* ssl_ticket_aead_retry indicates that the operation could not be
@@ -3800,6 +3800,12 @@ OPENSSL_EXPORT const BIO_METHOD *BIO_f_ssl(void);
* other than one on error. */
OPENSSL_EXPORT long BIO_set_ssl(BIO *bio, SSL *ssl, int take_owership);
+/* SSL_CTX_set_ecdh_auto returns one. */
+#define SSL_CTX_set_ecdh_auto(ctx, onoff) 1
+
+/* SSL_set_ecdh_auto returns one. */
+#define SSL_set_ecdh_auto(ssl, onoff) 1
+
/* Private structures.
*
@@ -4294,6 +4300,7 @@ struct ssl_ctx_st {
#define SSL_CTRL_SESS_NUMBER doesnt_exist
#define SSL_CTRL_SET_CURVES doesnt_exist
#define SSL_CTRL_SET_CURVES_LIST doesnt_exist
+#define SSL_CTRL_SET_ECDH_AUTO doesnt_exist
#define SSL_CTRL_SET_MAX_CERT_LIST doesnt_exist
#define SSL_CTRL_SET_MAX_SEND_FRAGMENT doesnt_exist
#define SSL_CTRL_SET_MSG_CALLBACK doesnt_exist
diff --git a/src/ssl/test/runner/key_agreement.go b/src/ssl/test/runner/key_agreement.go
index 8aa91186..2a3e9243 100644
--- a/src/ssl/test/runner/key_agreement.go
+++ b/src/ssl/test/runner/key_agreement.go
@@ -168,7 +168,7 @@ func (ka *rsaKeyAgreement) generateClientKeyExchange(config *Config, clientHello
encrypted[0] = 0
}
ckx := new(clientKeyExchangeMsg)
- if clientHello.vers != VersionSSL30 {
+ if ka.version != VersionSSL30 {
ckx.ciphertext = make([]byte, len(encrypted)+2)
ckx.ciphertext[0] = byte(len(encrypted) >> 8)
ckx.ciphertext[1] = byte(len(encrypted))
diff --git a/src/tool/client.cc b/src/tool/client.cc
index 6cd40fb0..6bc8e399 100644
--- a/src/tool/client.cc
+++ b/src/tool/client.cc
@@ -107,7 +107,7 @@ static const struct argument kArguments[] = {
},
{
"-root-certs", kOptionalArgument,
- "A filename containing one of more PEM root certificates. Implies that"
+ "A filename containing one of more PEM root certificates. Implies that "
"verification is required.",
},
{
diff --git a/src/util/all_tests.json b/src/util/all_tests.json
index a6e672f6..d5c6e544 100644
--- a/src/util/all_tests.json
+++ b/src/util/all_tests.json
@@ -1,6 +1,5 @@
[
["crypto/aes/aes_test", "crypto/aes/aes_tests.txt"],
- ["crypto/asn1/asn1_test"],
["crypto/base64/base64_test"],
["crypto/bio/bio_test"],
["crypto/bn/bn_test", "crypto/bn/bn_tests.txt"],
diff --git a/src/util/generate-coverage.sh b/src/util/generate-coverage.sh
index e16a9a44..3990c986 100755
--- a/src/util/generate-coverage.sh
+++ b/src/util/generate-coverage.sh
@@ -46,9 +46,8 @@ go test -shim-path "$BUILD/ssl/test/bssl_shim" -num-workers 1
cd "$LCOV"
lcov -c -d "$BUILD" -b "$BUILD" -o "$BUILD/lcov.info"
-lcov -r "$BUILD/lcov.info" "*_test.c" -o "$BUILD/lcov-1.info"
-lcov -r "$BUILD/lcov-1.info" "*_test.cc" -o "$BUILD/lcov-2.info"
-cat "$BUILD/lcov-2.info" "$BUILD/asm.info" > "$BUILD/final.info"
+lcov -r "$BUILD/lcov.info" -o "$BUILD/filtered.info" "*_test.c" "*_test.cc" "*/third_party/googletest/*"
+cat "$BUILD/filtered.info" "$BUILD/asm.info" > "$BUILD/final.info"
sed -i "s;$BUILD;$BUILD_SRC;g" "$BUILD/final.info"
sed -i "s;$SRC;$BUILD_SRC;g" "$BUILD/final.info"
genhtml -p "$BUILD_SRC" "$BUILD/final.info"