x509cert = '''-----BEGIN CERTIFICATE-----
MIIFXTCCA0WgAwIBAgIJALrA6P0W35jRMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTcwNjEwMjIwMDM1WhcNMTgwNjEwMjIwMDM1WjBF
MQswCQYDVQQGEwJVUzETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEA2cxg1IcP1gDQezLJm9MDkEEHqOZEAn1iatoIHUoIlfu36Sripn4yoTxM
1pmOT37CFoaiRfj0biEbjrgfi0QXk9z4E7Vy0XGF6XB5KofOneqnUuSgnOnEkL0p
gQ3itCr/FLkvuT8/zYKL+PXsMnfHGORgJmHlu1/4rY6Z/dayaf4fUFlKRRziEVUn
3EMd/hHFHThXimWd3mtxE1YnpKimnFLmIYjXrK22QUZJ2MYVcRklJYaXhIJgHW2s
oe+ZRhFHxcYoY3znRFZXYkoCXETcExCmo7czLoN4/F92zFDEGbAMbwC/7Zo9AxQg
30Q4iCrLfwAx+M/0A2dRbSTqGReBeBVfEBWopfz7zV3W7kI+s5K2AIFi+1hbmJ6a
mKomv3f4z6Ml+yOqrq4KtrDSxnSf6Vh7EHsws6uyMG7Y6rLpPm1sLDiffPABlAti
/YlVT+3vlg86h7Vlw68CcNSclgyfFW+i1e5a+EV7WB0VmIQXzSkhA86b9aD8qWdL
N4H8sRlSZ3XfIil4u93QDC/NzJl22wRsN7926xR4DgbCesEsc361KYE8fBSx61fa
6EyvlQoI2I4r1aWCSHq7YGfV6guBZekR0BeaIsoNwfZDZrboL0sOrHGxiEfzYdVC
pAxjdG13zuPo+634fUfewBAq695kVYcy3aBt2wOkLyQGLu0CHHsCAwEAAaNQME4w
HQYDVR0OBBYEFAYLLJUqmUdXCNYTQIWX1ICBKGvWMB8GA1UdIwQYMBaAFAYLLJUq
mUdXCNYTQIWX1ICBKGvWMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIB
AGnvTPevCooo3xO8U/lq2YNo3cFxYnkurBwAn5pwzJrtPgogwezBltEp52+n39TY
5hSa//pfKdQz2GrQ9YvX1vB8gWkNLxBe6g2ksn0DsGTApC/te1p4M+yTKhogtE7a
qYmZBSEI46URe0JLYNirzdTu5dri7DzxFc7E/XlQ0riuMyHNqOP0JXKhxKN1dYOu
NEPxekq2Z2phoo1ul8hBXsz4IRwVeQOAtpRnfrKjxogOI1teP/RSikTsSLvFHxqo
UHVzwBexQs9isBlBUcmuKksxoGugqqSkGQRE+dSs5RSeEPLexMgACfFmKfpS+Vn4
ikb2ETQ3i76+JgMoDHKwb4u9xIyKTUToIsx5dUO+o7paPfyqRE6WbO4H+suM4VCd
VhNbG9qv02Fl8vdYAc/A6tVyV8b4fMbSsGEQnBlvKuOXf/uxAIcz11WUQ4gy/0/e
kHbMqGuBFPkg5nww3dBxkrBbtKq/1yrnQUjpBvjYtyUvoKrLSbQSGj586i52r4hF
+bqGPTxmk6hU4JZN+0wvkbVWLZBTRVNKs8Sb6fRWTd2Zd/o7a7QFhbnnAhv8bgyb
4472yLaXTL/siml+LlSrNGeZEsAaCVH4ETp+HzjpAMAyhhFGqCixG0e9BRPGV936
H/8+SUQK5KxnwDz3hqrAVJyimrvNlSaP1eZ5P8WXuvBl
-----END CERTIFICATE-----'''

x509key = '''-----BEGIN PRIVATE KEY-----
MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQDZzGDUhw/WANB7
Msmb0wOQQQeo5kQCfWJq2ggdSgiV+7fpKuKmfjKhPEzWmY5PfsIWhqJF+PRuIRuO
uB+LRBeT3PgTtXLRcYXpcHkqh86d6qdS5KCc6cSQvSmBDeK0Kv8UuS+5Pz/Ngov4
9ewyd8cY5GAmYeW7X/itjpn91rJp/h9QWUpFHOIRVSfcQx3+EcUdOFeKZZ3ea3ET
ViekqKacUuYhiNesrbZBRknYxhVxGSUlhpeEgmAdbayh75lGEUfFxihjfOdEVldi
SgJcRNwTEKajtzMug3j8X3bMUMQZsAxvAL/tmj0DFCDfRDiIKst/ADH4z/QDZ1Ft
JOoZF4F4FV8QFail/PvNXdbuQj6zkrYAgWL7WFuYnpqYqia/d/jPoyX7I6qurgq2
sNLGdJ/pWHsQezCzq7Iwbtjqsuk+bWwsOJ988AGUC2L9iVVP7e+WDzqHtWXDrwJw
1JyWDJ8Vb6LV7lr4RXtYHRWYhBfNKSEDzpv1oPypZ0s3gfyxGVJndd8iKXi73dAM
L83MmXbbBGw3v3brFHgOBsJ6wSxzfrUpgTx8FLHrV9roTK+VCgjYjivVpYJIertg
Z9XqC4Fl6RHQF5oiyg3B9kNmtugvSw6scbGIR/Nh1UKkDGN0bXfO4+j7rfh9R97A
ECrr3mRVhzLdoG3bA6QvJAYu7QIcewIDAQABAoICAEKMgXXPAxa3zvwl65ZyZp9Y
T3fbTCKan0zY7CvO6EqzzGExmmmXG+9KVowoBWTi7XkmkETjKgTQlvQH7JOILdAf
b6nOApRepLVMialmL8ru3Uul0jG/+DDlq93kGUZF8QUrBJsM6XjpD831jsNo9+vy
NDLmLOURERIvBXybco6SeIz7i4cMqUL0iyZxV6O/WERyZ8VBAXjpyXZIF/rnEWmo
purOPmBj/9F4Ia5b8EdLkJ8jvf5eO/IiBeLBLEtNkmmq/8JOcvfdjfvZc1kwLTKi
HtjdbIUk5P3wSYNqllDnCxWL3BlEzKm5J8YwuTlaIi3fKGXHXN8BXc8EvYcHOKah
K89HIuexjQyQ0JAWKIIJTZs8jVvTMTjgYnEAB+sLfehBBOKmRdmYij28kIo18blx
tsx1HjdfImDd0QloofRW1Srp6FhcgDK0qfWXze/Vm6IfF40oTVE3fS/RgYzx0SSM
2pc6hTXOnrw1r/UBPyNkJ1D/4UK4m0x91BvTSi6MsThWnhicoaTZl1GP4Qpeo9+4
9Z7t0Yalm0PA55aiHZsm9S8OroasVun2QnDxfUC44PIov7nhqifGVcKA8hIDgSNT
WP8amq9cNjft5xQnP/y70fbioPPiwau2+Q0SXVn/BYxjqZrNp6OfbWSi2IRO1NOD
QZDo2rtnL1RrDdBmtDShAoIBAQD2MTJT6HNacu8+u7DDtbMdKvy7rXVblGbUouh9
cLWX7/zGVcNzB5GSVki3J7J+Kdrs4H45/1JR1YvWtWd93F/xKXmCGkUQCsturtRn
IX93by3zuWNdLv4giP2pk97wNYaaJWZmo87nXKV6BbL//eEl+Ospg5lGrLCsj+Mk
9V8oBBxsxqgVZYVyoevLDAuwUw3Cb52PhnEaLrv30ljGFHpsYb9lFlMs8vRosVWy
i3/T5ASfdnMXKQ1gxN/aPtN6yrFVpXe+S/A5JBzAQfrjiZk4SzNvE7R0eze1YLfO
IulTvlqpk3HVQEpgfq8D3l1x/zqsh0SpCH3VkV5sQQx262iRAoIBAQDieZsWv9eO
QzF5nZmh3NL53LkpqONRBjF5b9phppgxw2jiS8D2eEn2XWExmEaK/JppmzvfxSG4
cPaQHJFjkRGpnJyBlBUnyk4ua5hlXOTb9l5HsLIBlVdcWxwF+zJh8Ylwau+mcVF8
b8n86zke88du+xTvXfMDn6p6EACmBncyZGi424hSw72u8jS0cdmqJl3isLR6duG3
4yipWhEpLU5YuR+796jmjK5h+HQwl/Ra2dykbAw7vN0ofdK0+7LrVnGh7dDecOGK
0fElgFPTazeQQV+dEzqz6UwO0Z9koxqBwPqCLi7sXOeUWwqqb3ewYO7TMM4NlK/o
C8oG4yvWj9pLAoIBACEI9PHhbSkj5wqJ8OwyA3jUfdlJK0hAn5PE0GGUsClVIJwU
ggd7aoMyZMt+3iqjvyat8QIjSo6EkyEacmqnGZCoug9FKyM975JIj2PPUOVb29Sq
ebTVS3BeMXuBxhaBeDBS+GypamgNPH8lKKHFFWMdBaEqcXTUU1i0bgxViJE8C/xk
o8VLPB7nr1YtpZvhaSVACOprZd3Xi41zgkoCEXNdomsUFdEgQL+TnCY7Jcnu/NfQ
8xyWe58Si98jMwl1DVqqu2ijk/Z27Ay4TcweeJrfLGWpRTukFROXiNJ2SMzd7Bh5
Gns9Bz3vgdiJDAzx7JOeCw6LfycbPIpWKDAE4qECggEAZ5kPG7H4Dcio6iPwsj1M
eSXBwc/S5C58FTvYXtERT7o+0T2r8FMIKl1+52vr4Qo6LFLpaaxIh5GNCFE5JJ2o
wbi1UwUFRGVjrBJl7QA4ZHJnoE2wr8673rCCui21V15g637PT4kIqG6OrFaBk6oa
MadDZVfJoX+5QQru8QOGJRQPX3h0/L8zlsKO33gxBId2bQs+E8Mr761G3Wko7nge
HbHZVWet6IC0CHbZ15y7F5APQVt3oR/83tfnughlSQgLBPK/l/F1CsaMlAYG0nB6
Q0/USAsS0FfJBgJX8nY12uMG9OPhbRf2i0O2Nk61JobA2PS7XTUF3pT9/naOiCDX
zwKCAQBK9dPzoc9CfdAJVWjCqR2xS8Jr3/64k59Pya6e7Y4ca+e1g4N7hhQRLPW7
owTKloXrR0mAkwOIiJlk+gXsl2banuSajiPxumSfPYWE1Q/QNFD/WoPvo6rPYJ8N
yA/ORsMjWq51SfpzOU69+FdY7p3GvIVWhRtinqseaAIMOkNZBLVDXF4DvtFgiLZM
bKAjGuXsKOT3MPFU9tHxi4q/7flUb30mSUVXyPjh+C+UH7e0BS0pi/rDeRdEju4z
bJVERP8/VAJ61TDQJq+Il95fzKe4yTA3dDHnO+EG5W2eCsawTK4Ze5XAWqomgdew
62D3AkJQiflLfJL8zTFph1FZXLOm
-----END PRIVATE KEY-----'''

caCert='''-----BEGIN CERTIFICATE-----
MIIDpzCCAo+gAwIBAgIUJhEOjFKIa58mXA/IDGlQEsrYyHcwDQYJKoZIhvcNAQEL
BQAwYzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1TYW4gRnJh
bmNpc2NvMQ0wCwYDVQQKDARNeUNBMREwDwYDVQQLDAhNeUNBVW5pdDENMAsGA1UE
AwwETXlDQTAeFw0yMzEyMjIwMTAwMDRaFw0zMzEyMTkwMTAwMDRaMGMxCzAJBgNV
BAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsG
A1UECgwETXlDQTERMA8GA1UECwwITXlDQVVuaXQxDTALBgNVBAMMBE15Q0EwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNL9C4/DeWc2PRR5auWN9EhhJN
bRjaqU2/wRrjr1tQBdam51G8X92szKLz8jYSpyUlb/Y1rJEqCrNWjXlyr7TBCCRX
A9WoU1nFr78E4rouVswzrQC1ibma4GzyC6yB4Myig58BYkIgwYxeCFHyQujqJtEU
yhN4MxubDsAwBY4jpyeY2lQtAI91oH5z6H/GjgZWsFCjas8D2KGumwCdhpACWzeR
lPs1gsiaBnv4YjVW02orC41A6vp4MkU9a33ROnuX2xdLqb9qgXUzg7Gm2N6hm2K+
WrhNArleDHiUFxOhKdfNqPVHNVPGsV1LNU5XqjVABPedwIherawswVeq/dKrAgMB
AAGjUzBRMB0GA1UdDgQWBBROXdu+ii5URVHNEUsj87kdP/lNVTAfBgNVHSMEGDAW
gBROXdu+ii5URVHNEUsj87kdP/lNVTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
DQEBCwUAA4IBAQCf/2BJD0fVQdROPkp3MzaySlUgqnmqRXS4YZ7gzJM1rCv2a8qR
G6/8Q9Fyeys1nlFC69fw4/Z5aJkt93L5IzedYS5fHN/yecYB87Yhg4SmXc5VxqGN
wBbtBqaUI2Z6RrJ6Hr0jpU4/mhN51liuFHPzyWsZJ3skUi2EqXZMEatwU4cHH0ZN
BCmFDqhhJORfFcPQI3E+WxjBOeeVSsw/zz4Qkzmh/gf7ul+CC7acc5FqnNfFaFrK
+LjqerXjDOhgWtlevZFQ5ErFyYxNlX+K5+lCTET0IjK7Rf7WvpaogsmP77+aYPBY
D6FdZ2n8YTwgPxc0abCEYTG11FsLEoBRl7uV
-----END CERTIFICATE-----'''

caSignedCertExampleDotCom='''-----BEGIN CERTIFICATE-----
MIIDdDCCAlygAwIBAgIUBl9lZYnKOHx7YHk1tQR3+qMx6zowDQYJKoZIhvcNAQEL
BQAwYzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1TYW4gRnJh
bmNpc2NvMQ0wCwYDVQQKDARNeUNBMREwDwYDVQQLDAhNeUNBVW5pdDENMAsGA1UE
AwwETXlDQTAeFw0yMzEyMjIwMTAwMDRaFw0yNjAzMjYwMTAwMDRaMGkxCzAJBgNV
BAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEOMAwG
A1UECgwFTXlPcmcxDzANBgNVBAsMBk15VW5pdDEUMBIGA1UEAwwLZXhhbXBsZS5j
b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx5Q51upQH9coFAJQy
UXpWIGuEBjEvebs6qrpOwBICz/NtRCn0A+yQKJag2hsExeg/aj4a16ci2mp3VgP9
+dFRbE/Os7GQUmrsrcxELhCzpNl4DAanQSPXx2DRoAS9cX6kTEcKqV3EVw0SjyeL
Qq6N6wcGqOYzrx2vjrTlG/ojfeteOptJMo1KC413O5CFpNw8AQ+POXoOSIaKziOz
oPThCUMrR2Q2C54PlFZH1UMqPSG1FRigifAwYLrH8hI6eMTuhY7CLza5cFqqT5nh
VI+47HFt3EqGcSA3nVisFsb+v5H4jY8m8h2F/g6d1PJep39uQkQ3v/54F4SODpBR
CbwxAgMBAAGjGjAYMBYGA1UdEQQPMA2CC2V4YW1wbGUuY29tMA0GCSqGSIb3DQEB
CwUAA4IBAQA+hNgESQWLsVgqbcXSVbUS6CTEk8Dl/ESDghqiHBQl1JifBCc8NFUb
28zr+ECdSXkBNcSgNOfcLdNZ0b2ImFA3nIQBo9zErWOAYy32bC1b+y9yoZ5Fy4H+
0eBB+/FOm+Fso9oJE+Hhh7m5hH+FuJA/Q8ovKiRmcLkXTSk8wiSXCd7V3U8ukFmi
DBHkUp9fHmLEd2XUXRT6whD+S/ZKocEp78SOgW+JiC3s9r5YHqdz3KV8uvPK6u36
13IkBjHvUqwJwT63yKw+sKBWqKaIl5NF0sajsmceYoNJcn78r2BKRuGtNdZ69Is5
120Nvq2BQoT04P/xd3O678RnQBq2xFJp
-----END CERTIFICATE-----'''

caSignedKeyExampleDotCom='''-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAseUOdbqUB/XKBQCUMlF6ViBrhAYxL3m7Oqq6TsASAs/zbUQp
9APskCiWoNobBMXoP2o+GtenItpqd1YD/fnRUWxPzrOxkFJq7K3MRC4Qs6TZeAwG
p0Ej18dg0aAEvXF+pExHCqldxFcNEo8ni0KujesHBqjmM68dr4605Rv6I33rXjqb
STKNSguNdzuQhaTcPAEPjzl6DkiGis4js6D04QlDK0dkNgueD5RWR9VDKj0htRUY
oInwMGC6x/ISOnjE7oWOwi82uXBaqk+Z4VSPuOxxbdxKhnEgN51YrBbG/r+R+I2P
JvIdhf4OndTyXqd/bkJEN7/+eBeEjg6QUQm8MQIDAQABAoIBAC1/wlUGJXpruQHS
hhTglgOVQyp/UvErl2GH7SLbKUAi48Xcm0ZYApdUakI1xpdP7vjZOY0v/wWBC53+
GANLc+f5ZegeOZoKGmLyiL4fchIgZaa4nLMGjB5SVkcHQG8bqiJnh/wIGX1wLl3C
04Bgy7hsll1zsX0imtseCtJWd4G/81uPAAeGuC5IkuOFu3EWMACjc0XcFpL4A2Ks
5mar/fHHgnFfkAWLcrPkCu34v6nzbA0MSEOst/aWHWudbreNufa5hf1vWoPWpcml
FjmImQnWPPcizax4G1v8JOrT1HWX7IWLFQoQGRywSaJm6YiOSP/tOhBuU9jzCibc
bc5YT0kCgYEA6s4zc2oP5aMqWZX9VWP2W/rwSteMV8bVMuX0u01XMcY+usdPxtV/
wfeYcG4+ZBXvFe+S1WpQebIrcVUw+O1fof9ybuniRVw+bOh1g52aIdwWw1+kwieC
kq1nseDki8tssbv0HYPkEq5bi6i39ZpMi7CAWdWmQ5iHTIBVHwd1YhsCgYEAwfPI
i1GrMl+LgVdaKkniiJSVrBvIb0xUKkZt7t3OSeeLZGzbGD5vcufk8iECVdQkqDee
9H9N5zc4P+wZAMnuEzI4l7Ch3AZ1j8ukwcRPsfjTQSvRnwvpwojXtgVfoecL2zxE
+i/5MUls1qvrG6A5FY03ssP2K8eaMME66e3xH6MCgYBSayasMGJ8HJXU9E0EGB51
ktOdsaNVfDmBsC4DQNaGZivGrAdYp8A8eYhMjqXfw8M0U++accLltKCDG4AhIFEd
L+ke/YGrDwHqgH4fQMbFc9eZpIzUicHPcoafbW1LlJAGow7A/XalCAaiMwq/bvXH
YqDq54+A0p1LQRCf36JYWQKBgA4T+OmL6wZEAydHROcu57+MMXUFqz3Q54cOB6q/
9NpOcUK/2ANhfMt1Y5vjo3zBYkvHhcUvfGMdEfsp0wLIpXxFN/BixMzotx3R5Uqf
Sj2b1xGy8Ys+3R/euPGgYDmrQKQQMt2KH+dg8gJ/BhjCP4J99p4GNVcmLN3/GJyk
Rc1LAoGABIdnNZD/yuY/3CC3umwkadgJ7HBeMt9hPDac7ApYC6dTJy5LofssJH2S
O18s1yk+ldkyW7ouEcgNgoZNFCQ+/C8VtuwOTOEJmEY6LwRtOWksHDH9U5uK6cx9
t+YBsh2wlUqjUG0wMACbpMWR+JgsHwXemUGtIdevSaYk/0CX0oE=
-----END RSA PRIVATE KEY-----'''