From 0a385f482b86f2ff33ab8d6710b6c683489406ba Mon Sep 17 00:00:00 2001 From: Ian Craggs Date: Wed, 13 Nov 2013 11:35:36 +0000 Subject: [PATCH] All ssl configuration files needed for SSL tests --- test/ssl/all-ca.crt | 35 +++ test/ssl/all-ca.crt.text | 58 +++++ test/ssl/all-ca.crt~ | 18 ++ test/ssl/cert.zip | Bin 0 -> 18828 bytes test/ssl/gen.sh | 70 ++++++ test/ssl/openssl.cnf | 406 +++++++++++++++++++++++++++++++++ test/ssl/server-expired.crt | 0 test/ssl/server.crt | 60 +++++ test/ssl/server.key | 15 ++ test/ssl/server.pem | 117 ++++++++++ test/ssl/test-alt-ca.crt | 58 +++++ test/ssl/test-alt-ca.key | 15 ++ test/ssl/test-bad-root-ca.crt | 17 ++ test/ssl/test-bad-root-ca.key | 15 ++ test/ssl/test-fake-root-ca.crt | 17 ++ test/ssl/test-fake-root-ca.key | 15 ++ test/ssl/test-root-ca.crt.text | 59 +++++ test/ssl/test-root-ca.key | 15 ++ test/ssl/test-signing-ca.crt | 57 +++++ test/ssl/test-signing-ca.key | 15 ++ 20 files changed, 1062 insertions(+) create mode 100644 test/ssl/all-ca.crt create mode 100644 test/ssl/all-ca.crt.text create mode 100644 test/ssl/all-ca.crt~ create mode 100644 test/ssl/cert.zip create mode 100755 test/ssl/gen.sh create mode 100644 test/ssl/openssl.cnf create mode 100644 test/ssl/server-expired.crt create mode 100644 test/ssl/server.crt create mode 100644 test/ssl/server.key create mode 100644 test/ssl/server.pem create mode 100644 test/ssl/test-alt-ca.crt create mode 100644 test/ssl/test-alt-ca.key create mode 100644 test/ssl/test-bad-root-ca.crt create mode 100644 test/ssl/test-bad-root-ca.key create mode 100644 test/ssl/test-fake-root-ca.crt create mode 100644 test/ssl/test-fake-root-ca.key create mode 100644 test/ssl/test-root-ca.crt.text create mode 100644 test/ssl/test-root-ca.key create mode 100644 test/ssl/test-signing-ca.crt create mode 100644 test/ssl/test-signing-ca.key diff --git a/test/ssl/all-ca.crt b/test/ssl/all-ca.crt new file mode 100644 index 00000000..696a5f73 --- /dev/null +++ b/test/ssl/all-ca.crt @@ -0,0 +1,35 @@ +-----BEGIN CERTIFICATE----- +MIICnTCCAgagAwIBAgIBATANBgkqhkiG9w0BAQUFADByMQswCQYDVQQGEwJHQjET +MBEGA1UECAwKRGVyYnlzaGlyZTEOMAwGA1UEBwwFRGVyYnkxGjAYBgNVBAoMEU1v +c3F1aXR0byBQcm9qZWN0MRAwDgYDVQQLDAdUZXN0aW5nMRAwDgYDVQQDDAdSb290 +IENBMB4XDTEzMDcyNDIzNTExNloXDTE4MDcyMzIzNTExNlowZTELMAkGA1UEBhMC +R0IxEzARBgNVBAgMCkRlcmJ5c2hpcmUxGjAYBgNVBAoMEU1vc3F1aXR0byBQcm9q +ZWN0MRAwDgYDVQQLDAdUZXN0aW5nMRMwEQYDVQQDDApTaWduaW5nIENBMIGfMA0G +CSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1Sir65IBDbm7bI4lHDakEoN0Y6DUg/Spz +FoPe4cbixwS1pg3514X2srv9w03Kzp/obDOs/JzbqcPfOBAuiiPlMm1hw9az1B7N +9lg/2DKHL/7Oq8IZUKsFjhbFAMjQd/PAZCkBO1FS1Y0jZes4/1fzlqq4rYItTie+ +YX8tTDc/7QIDAQABo1AwTjAdBgNVHQ4EFgQU5W621SksDwZxSpsZsFkm6/QuAQYw +HwYDVR0jBBgwFoAUq92KK7UYT6V7F1mySt6+LWTPzr4wDAYDVR0TBAUwAwEB/zAN +BgkqhkiG9w0BAQUFAAOBgQBMcwdjElUOhXqoqlX1DWik58X73GHxjE52jao4BHRZ +S+PpwOOjfnq4CfIXF1cMp95cK+Eh566lEJf2udlV1waKew578T86+UsRO/T/a0bb +3FuuZH3TXnO+OjNMTWKMZ0iLQtPwNN4m9lszECrSgJ53yCIB6iq/zfXVSop7XFzd +VQ== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICqDCCAhGgAwIBAgIJAKrzwmdXIUxsMA0GCSqGSIb3DQEBBQUAMG0xCzAJBgNV +BAYTAkdCMRMwEQYDVQQIDApEZXJieXNoaXJlMQ4wDAYDVQQHDAVEZXJieTEVMBMG +A1UECgwMUGFobyBQcm9qZWN0MRAwDgYDVQQLDAdUZXN0aW5nMRAwDgYDVQQDDAdS +b290IENBMB4XDTEzMDcyOTE5MjEyOVoXDTIzMDcyNzE5MjEyOVowbTELMAkGA1UE +BhMCR0IxEzARBgNVBAgMCkRlcmJ5c2hpcmUxDjAMBgNVBAcMBURlcmJ5MRUwEwYD +VQQKDAxQYWhvIFByb2plY3QxEDAOBgNVBAsMB1Rlc3RpbmcxEDAOBgNVBAMMB1Jv +b3QgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKbPzEEWCKsjjwjJ787u +Q32k5EdqoDddMEjSVbZNSNEwUew1L7O8NTbmtCEeVFQjOLAdmdiF3rQbXHV+Zew0 +jt2g4vtPpl1GOG6jA/6YznKAyQdvGCdYfGZUN2tN+mbtVxWqkHZitQDQGaSHnx24 +NX649La2uyFy+7l9o8++xPONAgMBAAGjUDBOMB0GA1UdDgQWBBRKK2nWMR2jaOhG +b/tL8462jVEOvzAfBgNVHSMEGDAWgBRKK2nWMR2jaOhGb/tL8462jVEOvzAMBgNV +HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAEd+gW86/W+fisz5PFHAeEw7zn9q +dzLHm7+QZgNLZ9h7/ZbhObRUFMRtU2xm4amyh85h7hUE5R2E2uW2OXumic7/D4ZD +6unjr4m5jwVWDTqTUYIcNSriyoDWAVlPfOWaU5NyUhqS1DM28tvOWVHVLCxmVcZl +tJQqo5eHbQ/+Hjfx +-----END CERTIFICATE----- + diff --git a/test/ssl/all-ca.crt.text b/test/ssl/all-ca.crt.text new file mode 100644 index 00000000..a672f779 --- /dev/null +++ b/test/ssl/all-ca.crt.text @@ -0,0 +1,58 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 1 (0x1) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=GB, ST=Derbyshire, L=Derby, O=Mosquitto Project, OU=Testing, CN=Root CA + Validity + Not Before: Jul 24 23:51:16 2013 GMT + Not After : Jul 23 23:51:16 2018 GMT + Subject: C=GB, ST=Derbyshire, O=Mosquitto Project, OU=Testing, CN=Signing CA + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (1024 bit) + Modulus: + 00:b5:4a:2a:fa:e4:80:43:6e:6e:db:23:89:47:0d: + a9:04:a0:dd:18:e8:35:20:fd:2a:73:16:83:de:e1: + c6:e2:c7:04:b5:a6:0d:f9:d7:85:f6:b2:bb:fd:c3: + 4d:ca:ce:9f:e8:6c:33:ac:fc:9c:db:a9:c3:df:38: + 10:2e:8a:23:e5:32:6d:61:c3:d6:b3:d4:1e:cd:f6: + 58:3f:d8:32:87:2f:fe:ce:ab:c2:19:50:ab:05:8e: + 16:c5:00:c8:d0:77:f3:c0:64:29:01:3b:51:52:d5: + 8d:23:65:eb:38:ff:57:f3:96:aa:b8:ad:82:2d:4e: + 27:be:61:7f:2d:4c:37:3f:ed + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + E5:6E:B6:D5:29:2C:0F:06:71:4A:9B:19:B0:59:26:EB:F4:2E:01:06 + X509v3 Authority Key Identifier: + keyid:AB:DD:8A:2B:B5:18:4F:A5:7B:17:59:B2:4A:DE:BE:2D:64:CF:CE:BE + + X509v3 Basic Constraints: + CA:TRUE + Signature Algorithm: sha1WithRSAEncryption + 4c:73:07:63:12:55:0e:85:7a:a8:aa:55:f5:0d:68:a4:e7:c5: + fb:dc:61:f1:8c:4e:76:8d:aa:38:04:74:59:4b:e3:e9:c0:e3: + a3:7e:7a:b8:09:f2:17:17:57:0c:a7:de:5c:2b:e1:21:e7:ae: + a5:10:97:f6:b9:d9:55:d7:06:8a:7b:0e:7b:f1:3f:3a:f9:4b: + 11:3b:f4:ff:6b:46:db:dc:5b:ae:64:7d:d3:5e:73:be:3a:33: + 4c:4d:62:8c:67:48:8b:42:d3:f0:34:de:26:f6:5b:33:10:2a: + d2:80:9e:77:c8:22:01:ea:2a:bf:cd:f5:d5:4a:8a:7b:5c:5c: + dd:55 +-----BEGIN CERTIFICATE----- +MIICnTCCAgagAwIBAgIBATANBgkqhkiG9w0BAQUFADByMQswCQYDVQQGEwJHQjET +MBEGA1UECAwKRGVyYnlzaGlyZTEOMAwGA1UEBwwFRGVyYnkxGjAYBgNVBAoMEU1v +c3F1aXR0byBQcm9qZWN0MRAwDgYDVQQLDAdUZXN0aW5nMRAwDgYDVQQDDAdSb290 +IENBMB4XDTEzMDcyNDIzNTExNloXDTE4MDcyMzIzNTExNlowZTELMAkGA1UEBhMC +R0IxEzARBgNVBAgMCkRlcmJ5c2hpcmUxGjAYBgNVBAoMEU1vc3F1aXR0byBQcm9q +ZWN0MRAwDgYDVQQLDAdUZXN0aW5nMRMwEQYDVQQDDApTaWduaW5nIENBMIGfMA0G +CSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1Sir65IBDbm7bI4lHDakEoN0Y6DUg/Spz +FoPe4cbixwS1pg3514X2srv9w03Kzp/obDOs/JzbqcPfOBAuiiPlMm1hw9az1B7N +9lg/2DKHL/7Oq8IZUKsFjhbFAMjQd/PAZCkBO1FS1Y0jZes4/1fzlqq4rYItTie+ +YX8tTDc/7QIDAQABo1AwTjAdBgNVHQ4EFgQU5W621SksDwZxSpsZsFkm6/QuAQYw +HwYDVR0jBBgwFoAUq92KK7UYT6V7F1mySt6+LWTPzr4wDAYDVR0TBAUwAwEB/zAN +BgkqhkiG9w0BAQUFAAOBgQBMcwdjElUOhXqoqlX1DWik58X73GHxjE52jao4BHRZ +S+PpwOOjfnq4CfIXF1cMp95cK+Eh566lEJf2udlV1waKew578T86+UsRO/T/a0bb +3FuuZH3TXnO+OjNMTWKMZ0iLQtPwNN4m9lszECrSgJ53yCIB6iq/zfXVSop7XFzd +VQ== +-----END CERTIFICATE----- diff --git a/test/ssl/all-ca.crt~ b/test/ssl/all-ca.crt~ new file mode 100644 index 00000000..40ac7d42 --- /dev/null +++ b/test/ssl/all-ca.crt~ @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIICnTCCAgagAwIBAgIBATANBgkqhkiG9w0BAQUFADByMQswCQYDVQQGEwJHQjET +MBEGA1UECAwKRGVyYnlzaGlyZTEOMAwGA1UEBwwFRGVyYnkxGjAYBgNVBAoMEU1v +c3F1aXR0byBQcm9qZWN0MRAwDgYDVQQLDAdUZXN0aW5nMRAwDgYDVQQDDAdSb290 +IENBMB4XDTEzMDcyNDIzNTExNloXDTE4MDcyMzIzNTExNlowZTELMAkGA1UEBhMC +R0IxEzARBgNVBAgMCkRlcmJ5c2hpcmUxGjAYBgNVBAoMEU1vc3F1aXR0byBQcm9q +ZWN0MRAwDgYDVQQLDAdUZXN0aW5nMRMwEQYDVQQDDApTaWduaW5nIENBMIGfMA0G +CSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1Sir65IBDbm7bI4lHDakEoN0Y6DUg/Spz +FoPe4cbixwS1pg3514X2srv9w03Kzp/obDOs/JzbqcPfOBAuiiPlMm1hw9az1B7N +9lg/2DKHL/7Oq8IZUKsFjhbFAMjQd/PAZCkBO1FS1Y0jZes4/1fzlqq4rYItTie+ +YX8tTDc/7QIDAQABo1AwTjAdBgNVHQ4EFgQU5W621SksDwZxSpsZsFkm6/QuAQYw +HwYDVR0jBBgwFoAUq92KK7UYT6V7F1mySt6+LWTPzr4wDAYDVR0TBAUwAwEB/zAN +BgkqhkiG9w0BAQUFAAOBgQBMcwdjElUOhXqoqlX1DWik58X73GHxjE52jao4BHRZ +S+PpwOOjfnq4CfIXF1cMp95cK+Eh566lEJf2udlV1waKew578T86+UsRO/T/a0bb +3FuuZH3TXnO+OjNMTWKMZ0iLQtPwNN4m9lszECrSgJ53yCIB6iq/zfXVSop7XFzd +VQ== +-----END CERTIFICATE----- + diff --git a/test/ssl/cert.zip b/test/ssl/cert.zip new file mode 100644 index 0000000000000000000000000000000000000000..dc13869beec5af2728d221504e853b68253c9f9b GIT binary patch literal 18828 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 literal 0 HcmV?d00001 diff --git a/test/ssl/gen.sh b/test/ssl/gen.sh new file mode 100755 index 00000000..047a1418 --- /dev/null +++ b/test/ssl/gen.sh @@ -0,0 +1,70 @@ +# This file generates the keys and certificates used for testing mosquitto. +# None of the keys are encrypted, so do not just use this script to generate +# files for your own use. + +rm -f *.crt *.key *.csr +for a in root signing; do + rm -rf ${a}CA/ + mkdir -p ${a}CA/newcerts + touch ${a}CA/index.txt + echo 01 > ${a}CA/serial + echo 01 > ${a}CA/crlnumber +done +rm -rf certs + +BASESUBJ="/C=GB/ST=Derbyshire/L=Derby/O=Mosquitto Project/OU=Testing" +SBASESUBJ="/C=GB/ST=Nottinghamshire/L=Nottingham/O=Server/OU=Production" +BBASESUBJ="/C=GB/ST=Nottinghamshire/L=Nottingham/O=Server/OU=Bridge" + +# The root CA +openssl genrsa -out test-root-ca.key 1024 +openssl req -new -x509 -days 3650 -key test-root-ca.key -out test-root-ca.crt -config openssl.cnf -subj "${BASESUBJ}/CN=Root CA/" + +# Another root CA that doesn't sign anything +openssl genrsa -out test-bad-root-ca.key 1024 +openssl req -new -x509 -days 3650 -key test-bad-root-ca.key -out test-bad-root-ca.crt -config openssl.cnf -subj "${BASESUBJ}/CN=Bad Root CA/" + +# This is a root CA that has the exact same details as the real root CA, but is a different key and certificate. Effectively a "fake" CA. +openssl genrsa -out test-fake-root-ca.key 1024 +openssl req -new -x509 -days 3650 -key test-fake-root-ca.key -out test-fake-root-ca.crt -config openssl.cnf -subj "${BASESUBJ}/CN=Root CA/" + +# An intermediate CA, signed by the root CA, used to sign server/client csrs. +openssl genrsa -out test-signing-ca.key 1024 +openssl req -out test-signing-ca.csr -key test-signing-ca.key -new -config openssl.cnf -subj "${BASESUBJ}/CN=Signing CA/" +openssl ca -config openssl.cnf -name CA_root -extensions v3_ca -out test-signing-ca.crt -infiles test-signing-ca.csr + +# An alternative intermediate CA, signed by the root CA, not used to sign anything. +openssl genrsa -out test-alt-ca.key 1024 +openssl req -out test-alt-ca.csr -key test-alt-ca.key -new -config openssl.cnf -subj "${BASESUBJ}/CN=Alternative Signing CA/" +openssl ca -config openssl.cnf -name CA_root -extensions v3_ca -out test-alt-ca.crt -infiles test-alt-ca.csr + +# Valid server key and certificate. +openssl genrsa -out server.key 1024 +openssl req -new -key server.key -out server.csr -config openssl.cnf -subj "${SBASESUBJ}/CN=localhost/" +openssl ca -config openssl.cnf -name CA_signing -out server.crt -infiles server.csr + +# Expired server certificate, based on the above server key. +openssl req -new -days 1 -key server.key -out server-expired.csr -config openssl.cnf -subj "${SBASESUBJ}/CN=localhost/" +openssl ca -config openssl.cnf -name CA_signing -days 1 -startdate 120820000000Z -enddate 120821000000Z -out server-expired.crt -infiles server-expired.csr + +# Valid client key and certificate. +openssl genrsa -out client.key 1024 +openssl req -new -key client.key -out client.csr -config openssl.cnf -subj "${SBASESUBJ}/CN=test client/" +openssl ca -config openssl.cnf -name CA_signing -out client.crt -infiles client.csr + +# Expired client certificate, based on the above client key. +openssl req -new -days 1 -key client.key -out client-expired.csr -config openssl.cnf -subj "${SBASESUBJ}/CN=test client expired/" +openssl ca -config openssl.cnf -name CA_signing -days 1 -startdate 120820000000Z -enddate 120821000000Z -out client-expired.crt -infiles client-expired.csr + +# Revoked client certificate, based on a new client key. +openssl genrsa -out client-revoked.key 1024 +openssl req -new -days 1 -key client-revoked.key -out client-revoked.csr -config openssl.cnf -subj "${SBASESUBJ}/CN=test client revoked/" +openssl ca -config openssl.cnf -name CA_signing -out client-revoked.crt -infiles client-revoked.csr +openssl ca -config openssl.cnf -name CA_signing -revoke client-revoked.crt +openssl ca -config openssl.cnf -name CA_signing -gencrl -out crl.pem + +cat test-signing-ca.crt test-root-ca.crt > all-ca.crt +#mkdir certs +#cp test-signing-ca.crt certs/test-signing-ca.pem +#cp test-root-ca.crt certs/test-root.ca.pem +c_rehash certs diff --git a/test/ssl/openssl.cnf b/test/ssl/openssl.cnf new file mode 100644 index 00000000..e0cff18f --- /dev/null +++ b/test/ssl/openssl.cnf @@ -0,0 +1,406 @@ +# +# OpenSSL example configuration file. +# This is mostly being used for generation of certificate requests. +# + +# This definition stops the following lines choking if HOME isn't +# defined. +HOME = . +RANDFILE = $ENV::HOME/.rnd + +# Extra OBJECT IDENTIFIER info: +#oid_file = $ENV::HOME/.oid +oid_section = new_oids + +# To use this configuration file with the "-extfile" option of the +# "openssl x509" utility, name here the section containing the +# X.509v3 extensions to use: +# extensions = +# (Alternatively, use a configuration file that has only +# X.509v3 extensions in its main [= default] section.) + +[ new_oids ] + +# We can add new OIDs in here for use by 'ca', 'req' and 'ts'. +# Add a simple OID like this: +# testoid1=1.2.3.4 +# Or use config file substitution like this: +# testoid2=${testoid1}.5.6 + +# Policies used by the TSA examples. +tsa_policy1 = 1.2.3.4.1 +tsa_policy2 = 1.2.3.4.5.6 +tsa_policy3 = 1.2.3.4.5.7 + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_signing ] + +dir = ./signingCA # Where everything is kept +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +#unique_subject = no # Set to 'no' to allow creation of + # several ctificates with same subject. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = test-signing-ca.crt # The CA certificate +serial = $dir/serial # The current serial number +crlnumber = $dir/crlnumber # the current crl number + # must be commented out to leave a V1 CRL +crl = $dir/crl.pem # The current CRL +private_key = test-signing-ca.key # The private key +RANDFILE = $dir/.rand # private random number file + +x509_extensions = usr_cert # The extentions to add to the cert + +# Comment out the following two lines for the "traditional" +# (and highly broken) format. +name_opt = ca_default # Subject Name options +cert_opt = ca_default # Certificate field options + +# Extension copying option: use with caution. +# copy_extensions = copy + +# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs +# so this is commented out by default to leave a V1 CRL. +# crlnumber must also be commented out to leave a V1 CRL. +# crl_extensions = crl_ext + +default_days = 1825 # how long to certify for +default_crl_days= 30 # how long before next CRL +default_md = default # use public key default MD +preserve = no # keep passed DN ordering + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_anything + +[ CA_inter ] +dir = ./interCA +certs = $dir/certs +crl_dir = $dir/crl +database = $dir/index.txt +new_certs_dir = $dir/newcerts + +certificate = test-inter-ca.crt +serial = $dir/serial +crlnumber = $dir/crlnumber +crl = $dir/crl.pem +private_key = test-inter-ca.key +RANDFILE = $dir/.rand + +#x509_extensions = v3_ca +x509_extensions = usr_cert + +name_opt = ca_default +cert_opt = ca_default + +default_days = 1825 +default_crl_days = 30 +default_md = default +preserve = no + +policy = policy_match +unique_subject = yes + +[ CA_root ] +dir = ./rootCA +certs = $dir/certs +crl_dir = $dir/crl +database = $dir/index.txt +new_certs_dir = $dir/newcerts + +certificate = test-root-ca.crt +serial = $dir/serial +crlnumber = $dir/crlnumber +crl = $dir/crl.pem +private_key = test-root-ca.key +RANDFILE = $dir/.rand + +x509_extensions = v3_ca + +name_opt = ca_default +cert_opt = ca_default + +default_days = 1825 +default_crl_days = 30 +default_md = default +preserve = no + +policy = policy_match +unique_subject = yes + +# For the CA policy +[ policy_match ] +countryName = match +stateOrProvinceName = match +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +# For the 'anything' policy +# At this point in time, you must list all acceptable 'object' +# types. +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +#################################################################### +[ req ] +default_bits = 2048 +default_keyfile = privkey.pem +distinguished_name = req_distinguished_name +attributes = req_attributes +x509_extensions = v3_ca # The extentions to add to the self signed cert + +# Passwords for private keys if not present they will be prompted for +# input_password = secret +# output_password = secret + +# This sets a mask for permitted string types. There are several options. +# default: PrintableString, T61String, BMPString. +# pkix : PrintableString, BMPString (PKIX recommendation before 2004) +# utf8only: only UTF8Strings (PKIX recommendation after 2004). +# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). +# MASK:XXXX a literal mask value. +# WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings. +string_mask = utf8only + +# req_extensions = v3_req # The extensions to add to a certificate request + +[ req_distinguished_name ] +countryName = Country Name (2 letter code) +countryName_default = GB +countryName_min = 2 +countryName_max = 2 + +stateOrProvinceName = State or Province Name (full name) +stateOrProvinceName_default = Derbyshire + +localityName = Locality Name (eg, city) +localityName_default = Derby + +0.organizationName = Organization Name (eg, company) +0.organizationName_default = Mosquitto Project + +# we can do this but it is not needed normally :-) +#1.organizationName = Second Organization Name (eg, company) +#1.organizationName_default = World Wide Web Pty Ltd + +organizationalUnitName = Organizational Unit Name (eg, section) +organizationalUnitName_default = Testing + +commonName = Common Name (e.g. server FQDN or YOUR name) +commonName_max = 64 + +emailAddress = Email Address +emailAddress_max = 64 + +# SET-ex3 = SET extension number 3 + +[ req_attributes ] +challengePassword = A challenge password +challengePassword_min = 4 +challengePassword_max = 20 + +unstructuredName = An optional company name + +[ usr_cert ] + +# These extensions are added when 'ca' signs a request. + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +# This is required for TSA certificates. +# extendedKeyUsage = critical,timeStamping + +[ v3_req ] + +# Extensions to add to a certificate request + +basicConstraints = CA:FALSE +keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +[ v3_ca ] + + +# Extensions for a typical CA + + +# PKIX recommendation. + +subjectKeyIdentifier=hash + +authorityKeyIdentifier=keyid:always,issuer + +# This is what PKIX recommends but some broken software chokes on critical +# extensions. +#basicConstraints = critical,CA:true +# So we do this instead. +basicConstraints = CA:true + +# Key usage: this is typical for a CA certificate. However since it will +# prevent it being used as an test self-signed certificate it is best +# left out by default. +# keyUsage = cRLSign, keyCertSign + +# Some might want this also +# nsCertType = sslCA, emailCA + +# Include email address in subject alt name: another PKIX recommendation +# subjectAltName=email:copy +# Copy issuer details +# issuerAltName=issuer:copy + +# DER hex encoding of an extension: beware experts only! +# obj=DER:02:03 +# Where 'obj' is a standard or added object +# You can even override a supported extension: +# basicConstraints= critical, DER:30:03:01:01:FF + +[ crl_ext ] + +# CRL extensions. +# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. + +# issuerAltName=issuer:copy +authorityKeyIdentifier=keyid:always + +[ proxy_cert_ext ] +# These extensions should be added when creating a proxy certificate + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# Here are some examples of the usage of nsCertType. If it is omitted +# the certificate can be used for anything *except* object signing. + +# This is OK for an SSL server. +# nsCertType = server + +# For an object signing certificate this would be used. +# nsCertType = objsign + +# For normal client use this is typical +# nsCertType = client, email + +# and for everything including object signing: +# nsCertType = client, email, objsign + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# This will be displayed in Netscape's comment listbox. +nsComment = "OpenSSL Generated Certificate" + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem +#nsBaseUrl +#nsRevocationUrl +#nsRenewalUrl +#nsCaPolicyUrl +#nsSslServerName + +# This really needs to be in place for it to be a proxy certificate. +proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo + +#################################################################### +[ tsa ] + +default_tsa = tsa_config1 # the default TSA section + +[ tsa_config1 ] + +# These are used by the TSA reply generation only. +dir = ./demoCA # TSA root directory +serial = $dir/tsaserial # The current serial number (mandatory) +crypto_device = builtin # OpenSSL engine to use for signing +signer_cert = $dir/tsacert.pem # The TSA signing certificate + # (optional) +certs = $dir/cacert.pem # Certificate chain to include in reply + # (optional) +signer_key = $dir/private/tsakey.pem # The TSA private key (optional) + +default_policy = tsa_policy1 # Policy if request did not specify it + # (optional) +other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional) +digests = md5, sha1 # Acceptable message digests (mandatory) +accuracy = secs:1, millisecs:500, microsecs:100 # (optional) +clock_precision_digits = 0 # number of digits after dot. (optional) +ordering = yes # Is ordering defined for timestamps? + # (optional, default: no) +tsa_name = yes # Must the TSA name be included in the reply? + # (optional, default: no) +ess_cert_id_chain = no # Must the ESS cert id chain be included? + # (optional, default: no) diff --git a/test/ssl/server-expired.crt b/test/ssl/server-expired.crt new file mode 100644 index 00000000..e69de29b diff --git a/test/ssl/server.crt b/test/ssl/server.crt new file mode 100644 index 00000000..b0941b97 --- /dev/null +++ b/test/ssl/server.crt @@ -0,0 +1,60 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 1 (0x1) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=GB, ST=Derbyshire, O=Paho Project, OU=Testing, CN=Signing CA + Validity + Not Before: Jul 29 19:21:30 2013 GMT + Not After : Jul 28 19:21:30 2018 GMT + Subject: C=GB, ST=Nottinghamshire, L=Nottingham, O=Server, OU=Production, CN=localhost + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (1024 bit) + Modulus: + 00:be:b7:65:98:5e:e1:e0:68:e7:14:04:e5:40:2d: + d3:b4:f2:b2:dd:6e:5c:97:7a:5b:c5:4f:7a:45:11: + 99:4e:56:30:c6:d6:50:29:88:c3:31:6d:b0:f1:a8: + 5f:f5:fd:cc:d1:52:0f:40:70:04:cc:14:0d:98:45: + 62:a8:f9:88:0a:be:20:32:53:c5:48:fb:b0:e4:25: + db:25:ec:0d:c4:6a:28:dc:af:d7:2d:63:99:b9:f4: + c0:32:54:dc:be:4d:9f:7f:67:7e:2a:be:82:2d:de: + 37:35:0b:0d:7b:b8:9c:55:ff:cf:ab:fe:61:e9:8c: + bf:c4:27:e2:56:2f:1a:73:87 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + Netscape Comment: + OpenSSL Generated Certificate + X509v3 Subject Key Identifier: + A1:8C:9A:D1:28:58:68:C5:46:5B:FA:C5:48:01:96:67:55:97:65:8A + X509v3 Authority Key Identifier: + keyid:29:4D:6E:C7:F2:F7:71:72:DA:27:9C:9C:AB:DA:07:1D:47:9C:D8:41 + + Signature Algorithm: sha1WithRSAEncryption + 78:f6:a1:34:ac:2c:a5:0a:1d:82:97:97:1f:f5:03:44:a7:c0: + 4d:e8:8d:67:e7:71:50:30:3c:8b:77:eb:81:96:78:6b:ab:31: + 5a:ba:7b:1c:ad:ec:fd:a6:5d:73:ef:99:2d:6f:9f:7e:13:ac: + b2:61:2f:e4:56:cc:28:f1:e4:7f:ea:a9:b2:f2:85:87:68:52: + 65:b0:42:54:84:92:2f:fb:45:d4:36:e2:3c:0e:4c:a6:6d:82: + 8f:72:c0:66:0c:5f:b2:a7:7c:9b:be:cd:19:55:5d:40:27:99: + 14:e2:cf:59:cb:4b:40:e4:98:2d:f7:93:14:4a:50:dc:75:9c: + 5c:9d +-----BEGIN CERTIFICATE----- +MIICxzCCAjCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJHQjET +MBEGA1UECAwKRGVyYnlzaGlyZTEVMBMGA1UECgwMUGFobyBQcm9qZWN0MRAwDgYD +VQQLDAdUZXN0aW5nMRMwEQYDVQQDDApTaWduaW5nIENBMB4XDTEzMDcyOTE5MjEz +MFoXDTE4MDcyODE5MjEzMFowdjELMAkGA1UEBhMCR0IxGDAWBgNVBAgMD05vdHRp +bmdoYW1zaGlyZTETMBEGA1UEBwwKTm90dGluZ2hhbTEPMA0GA1UECgwGU2VydmVy +MRMwEQYDVQQLDApQcm9kdWN0aW9uMRIwEAYDVQQDDAlsb2NhbGhvc3QwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAL63ZZhe4eBo5xQE5UAt07Tyst1uXJd6W8VP +ekURmU5WMMbWUCmIwzFtsPGoX/X9zNFSD0BwBMwUDZhFYqj5iAq+IDJTxUj7sOQl +2yXsDcRqKNyv1y1jmbn0wDJU3L5Nn39nfiq+gi3eNzULDXu4nFX/z6v+YemMv8Qn +4lYvGnOHAgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5T +U0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBShjJrRKFhoxUZb+sVI +AZZnVZdlijAfBgNVHSMEGDAWgBQpTW7H8vdxctonnJyr2gcdR5zYQTANBgkqhkiG +9w0BAQUFAAOBgQB49qE0rCylCh2Cl5cf9QNEp8BN6I1n53FQMDyLd+uBlnhrqzFa +unscrez9pl1z75ktb59+E6yyYS/kVswo8eR/6qmy8oWHaFJlsEJUhJIv+0XUNuI8 +DkymbYKPcsBmDF+yp3ybvs0ZVV1AJ5kU4s9Zy0tA5Jgt95MUSlDcdZxcnQ== +-----END CERTIFICATE----- diff --git a/test/ssl/server.key b/test/ssl/server.key new file mode 100644 index 00000000..bbf5c606 --- /dev/null +++ b/test/ssl/server.key @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQC+t2WYXuHgaOcUBOVALdO08rLdblyXelvFT3pFEZlOVjDG1lAp +iMMxbbDxqF/1/czRUg9AcATMFA2YRWKo+YgKviAyU8VI+7DkJdsl7A3Eaijcr9ct +Y5m59MAyVNy+TZ9/Z34qvoIt3jc1Cw17uJxV/8+r/mHpjL/EJ+JWLxpzhwIDAQAB +AoGAW1dC1UM8M1qKsc/WbHKGXreOavccaYA0y79Q9BuFrTsiiVjDc+EIe3fpsxPN +QeeYXPhMTbRY19US3cb9hahdOtPZc1zKRoloWl995v6X5XufTmgigBRUrRKG6rln +wok6PYwKQmcG+yVaOjPwiJBx+4gfGjD6qO/fhK2sWWtyneECQQDrUEiaWvQE0uli +EI34MhO3As0iYyw1qFHVck4bbFS4RT0gnhWYVeabd5mTKx1ztLlr0ykwaCf9FoMG +U2liyV/VAkEAz3t0v8vZrlpotW9CRzBQ63vYW3+d8m5Hmkvsghrfem52je6MN0oL +2Y7F3JrJh1bC9ZNgtkBF/mIQgv9jGBoP6wJASKTYRQ6fFn4mHmgN6/lJrM3olh0X +oNj9qm9HPaAL53c4j8E92XFrZ8NcXdqJlRbNx0PBC3icH727ZVCK0DxqoQJABTRn +nVgTwdfqwIJl+zsvDHky2Di/UZGKokg9SpY5/OxAdRcC1XA6E98M/5eybn6yrU5h +IrFCEDuNhnu5lKUyuQJAAiNPFWPkl4XeghyzPDA1lUYMwKPr7oEwELqS8fIq/g4K +BI10X7qlpioI4I6jA9lwlIdtR+q620UFZRlQts9nug== +-----END RSA PRIVATE KEY----- diff --git a/test/ssl/server.pem b/test/ssl/server.pem new file mode 100644 index 00000000..3436f124 --- /dev/null +++ b/test/ssl/server.pem @@ -0,0 +1,117 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 1 (0x1) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=GB, ST=Derbyshire, O=Paho Project, OU=Testing, CN=Signing CA + Validity + Not Before: Jul 29 19:21:30 2013 GMT + Not After : Jul 28 19:21:30 2018 GMT + Subject: C=GB, ST=Nottinghamshire, L=Nottingham, O=Server, OU=Production, CN=localhost + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (1024 bit) + Modulus: + 00:be:b7:65:98:5e:e1:e0:68:e7:14:04:e5:40:2d: + d3:b4:f2:b2:dd:6e:5c:97:7a:5b:c5:4f:7a:45:11: + 99:4e:56:30:c6:d6:50:29:88:c3:31:6d:b0:f1:a8: + 5f:f5:fd:cc:d1:52:0f:40:70:04:cc:14:0d:98:45: + 62:a8:f9:88:0a:be:20:32:53:c5:48:fb:b0:e4:25: + db:25:ec:0d:c4:6a:28:dc:af:d7:2d:63:99:b9:f4: + c0:32:54:dc:be:4d:9f:7f:67:7e:2a:be:82:2d:de: + 37:35:0b:0d:7b:b8:9c:55:ff:cf:ab:fe:61:e9:8c: + bf:c4:27:e2:56:2f:1a:73:87 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + Netscape Comment: + OpenSSL Generated Certificate + X509v3 Subject Key Identifier: + A1:8C:9A:D1:28:58:68:C5:46:5B:FA:C5:48:01:96:67:55:97:65:8A + X509v3 Authority Key Identifier: + keyid:29:4D:6E:C7:F2:F7:71:72:DA:27:9C:9C:AB:DA:07:1D:47:9C:D8:41 + + Signature Algorithm: sha1WithRSAEncryption + 78:f6:a1:34:ac:2c:a5:0a:1d:82:97:97:1f:f5:03:44:a7:c0: + 4d:e8:8d:67:e7:71:50:30:3c:8b:77:eb:81:96:78:6b:ab:31: + 5a:ba:7b:1c:ad:ec:fd:a6:5d:73:ef:99:2d:6f:9f:7e:13:ac: + b2:61:2f:e4:56:cc:28:f1:e4:7f:ea:a9:b2:f2:85:87:68:52: + 65:b0:42:54:84:92:2f:fb:45:d4:36:e2:3c:0e:4c:a6:6d:82: + 8f:72:c0:66:0c:5f:b2:a7:7c:9b:be:cd:19:55:5d:40:27:99: + 14:e2:cf:59:cb:4b:40:e4:98:2d:f7:93:14:4a:50:dc:75:9c: + 5c:9d +-----BEGIN CERTIFICATE----- +MIICxzCCAjCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJHQjET +MBEGA1UECAwKRGVyYnlzaGlyZTEVMBMGA1UECgwMUGFobyBQcm9qZWN0MRAwDgYD +VQQLDAdUZXN0aW5nMRMwEQYDVQQDDApTaWduaW5nIENBMB4XDTEzMDcyOTE5MjEz +MFoXDTE4MDcyODE5MjEzMFowdjELMAkGA1UEBhMCR0IxGDAWBgNVBAgMD05vdHRp +bmdoYW1zaGlyZTETMBEGA1UEBwwKTm90dGluZ2hhbTEPMA0GA1UECgwGU2VydmVy +MRMwEQYDVQQLDApQcm9kdWN0aW9uMRIwEAYDVQQDDAlsb2NhbGhvc3QwgZ8wDQYJ +KoZIhvcNAQEBBQADgY0AMIGJAoGBAL63ZZhe4eBo5xQE5UAt07Tyst1uXJd6W8VP +ekURmU5WMMbWUCmIwzFtsPGoX/X9zNFSD0BwBMwUDZhFYqj5iAq+IDJTxUj7sOQl +2yXsDcRqKNyv1y1jmbn0wDJU3L5Nn39nfiq+gi3eNzULDXu4nFX/z6v+YemMv8Qn +4lYvGnOHAgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5T +U0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBShjJrRKFhoxUZb+sVI +AZZnVZdlijAfBgNVHSMEGDAWgBQpTW7H8vdxctonnJyr2gcdR5zYQTANBgkqhkiG +9w0BAQUFAAOBgQB49qE0rCylCh2Cl5cf9QNEp8BN6I1n53FQMDyLd+uBlnhrqzFa +unscrez9pl1z75ktb59+E6yyYS/kVswo8eR/6qmy8oWHaFJlsEJUhJIv+0XUNuI8 +DkymbYKPcsBmDF+yp3ybvs0ZVV1AJ5kU4s9Zy0tA5Jgt95MUSlDcdZxcnQ== +-----END CERTIFICATE----- +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 1 (0x1) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=GB, ST=Derbyshire, L=Derby, O=Paho Project, OU=Testing, CN=Root CA + Validity + Not Before: Jul 29 19:21:30 2013 GMT + Not After : Jul 28 19:21:30 2018 GMT + Subject: C=GB, ST=Derbyshire, O=Paho Project, OU=Testing, CN=Signing CA + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (1024 bit) + Modulus: + 00:dc:26:78:40:ae:b2:ad:2f:26:12:0a:d5:b1:18: + 80:16:d8:88:be:0b:42:ce:32:ad:12:d5:f5:78:1b: + 35:28:f2:13:1b:05:09:fb:7e:d7:d9:a1:8a:0d:4a: + fe:95:37:d4:16:75:83:e4:6a:44:34:33:57:2e:49: + ba:bc:b4:cf:d0:c0:87:e0:bc:f0:60:76:14:00:d6: + eb:cb:f6:db:b3:43:f1:c8:4d:4a:0a:bb:e0:37:7c: + 8e:93:1f:a0:87:68:59:fe:0c:25:40:f3:7c:fd:71: + 90:55:ef:de:18:b4:08:86:c9:75:c2:99:2f:ce:12: + bf:c5:5e:cf:5f:f1:06:53:07 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 29:4D:6E:C7:F2:F7:71:72:DA:27:9C:9C:AB:DA:07:1D:47:9C:D8:41 + X509v3 Authority Key Identifier: + keyid:4A:2B:69:D6:31:1D:A3:68:E8:46:6F:FB:4B:F3:8E:B6:8D:51:0E:BF + + X509v3 Basic Constraints: + CA:TRUE + Signature Algorithm: sha1WithRSAEncryption + 48:ec:d7:80:8a:8f:82:a6:42:b1:89:2c:b9:4b:6d:0a:37:b8: + 72:19:05:de:75:80:0c:d6:41:97:b2:d7:fe:99:cb:7e:c4:0e: + 77:97:09:a8:9f:87:ff:0b:de:3f:1c:dc:1e:fe:09:36:a7:f5: + 54:9a:85:4e:fb:6f:27:fe:0f:29:45:61:8d:07:c6:0c:da:37: + 3d:a3:69:4b:82:71:e6:24:e0:87:a6:ee:d5:87:61:dd:8f:08: + fe:33:a6:1f:ae:b2:ae:1f:d8:2c:20:c8:a6:fc:33:0e:82:68: + 80:23:61:10:ad:5c:1d:80:d6:b1:5f:e4:af:66:6d:63:10:e4: + 96:e4 +-----BEGIN CERTIFICATE----- +MIICkzCCAfygAwIBAgIBATANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJHQjET +MBEGA1UECAwKRGVyYnlzaGlyZTEOMAwGA1UEBwwFRGVyYnkxFTATBgNVBAoMDFBh +aG8gUHJvamVjdDEQMA4GA1UECwwHVGVzdGluZzEQMA4GA1UEAwwHUm9vdCBDQTAe +Fw0xMzA3MjkxOTIxMzBaFw0xODA3MjgxOTIxMzBaMGAxCzAJBgNVBAYTAkdCMRMw +EQYDVQQIDApEZXJieXNoaXJlMRUwEwYDVQQKDAxQYWhvIFByb2plY3QxEDAOBgNV +BAsMB1Rlc3RpbmcxEzARBgNVBAMMClNpZ25pbmcgQ0EwgZ8wDQYJKoZIhvcNAQEB +BQADgY0AMIGJAoGBANwmeECusq0vJhIK1bEYgBbYiL4LQs4yrRLV9XgbNSjyExsF +Cft+19mhig1K/pU31BZ1g+RqRDQzVy5Jury0z9DAh+C88GB2FADW68v227ND8chN +Sgq74Dd8jpMfoIdoWf4MJUDzfP1xkFXv3hi0CIbJdcKZL84Sv8Vez1/xBlMHAgMB +AAGjUDBOMB0GA1UdDgQWBBQpTW7H8vdxctonnJyr2gcdR5zYQTAfBgNVHSMEGDAW +gBRKK2nWMR2jaOhGb/tL8462jVEOvzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEB +BQUAA4GBAEjs14CKj4KmQrGJLLlLbQo3uHIZBd51gAzWQZey1/6Zy37EDneXCaif +h/8L3j8c3B7+CTan9VSahU77byf+DylFYY0HxgzaNz2jaUuCceYk4Iem7tWHYd2P +CP4zph+usq4f2CwgyKb8Mw6CaIAjYRCtXB2A1rFf5K9mbWMQ5Jbk +-----END CERTIFICATE----- diff --git a/test/ssl/test-alt-ca.crt b/test/ssl/test-alt-ca.crt new file mode 100644 index 00000000..87f092aa --- /dev/null +++ b/test/ssl/test-alt-ca.crt @@ -0,0 +1,58 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 2 (0x2) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=GB, ST=Derbyshire, L=Derby, O=Paho Project, OU=Testing, CN=Root CA + Validity + Not Before: Jul 29 19:21:30 2013 GMT + Not After : Jul 28 19:21:30 2018 GMT + Subject: C=GB, ST=Derbyshire, O=Paho Project, OU=Testing, CN=Alternative Signing CA + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (1024 bit) + Modulus: + 00:d3:16:c8:c3:0c:90:e5:68:3d:11:13:a7:8e:fb: + 11:c5:de:aa:3f:4d:ac:95:4f:c4:c2:60:8a:df:95: + b5:db:75:04:76:42:19:5f:d9:63:0e:e4:c0:8e:db: + a5:5f:21:ec:f3:3d:a0:c1:82:8b:61:b4:1a:5b:3c: + 9e:42:bd:5f:5b:b4:a8:00:8d:e1:bf:99:93:c8:45: + 1f:6d:29:ab:67:f0:35:9c:48:0b:a0:a2:18:32:70: + 35:5e:ea:fe:1f:33:ab:b5:85:ef:1d:2a:a9:75:60: + 38:ed:3a:33:be:5d:40:89:cb:0b:b3:25:e8:e7:bc: + 13:6b:62:28:1d:a7:9c:aa:99 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 3A:70:4C:5D:76:C6:B4:CF:E7:BC:4B:F4:CE:C6:B8:46:C2:95:41:9B + X509v3 Authority Key Identifier: + keyid:4A:2B:69:D6:31:1D:A3:68:E8:46:6F:FB:4B:F3:8E:B6:8D:51:0E:BF + + X509v3 Basic Constraints: + CA:TRUE + Signature Algorithm: sha1WithRSAEncryption + 2f:74:dd:ef:da:03:cf:14:78:ae:6f:0d:04:29:75:db:c5:a2: + c0:fd:1e:46:bf:3c:25:3c:03:3b:a6:f4:f1:3a:89:54:83:e9: + 3a:0f:d7:81:9a:8d:7f:2d:6b:b1:ca:17:7f:ef:93:18:c4:68: + b8:b2:1d:d2:9c:d9:9f:66:9d:18:25:18:b4:4f:72:bf:24:c5: + 0c:2d:fc:cf:ad:c8:ff:25:f1:36:12:72:b4:46:e1:c9:17:19: + c5:1e:f5:26:8a:ae:33:5f:69:16:6f:62:ce:fc:ba:c3:a3:c5: + 50:a3:a5:42:a9:02:6a:25:77:90:3e:e3:b7:e5:ac:7f:3f:bb: + 1c:17 +-----BEGIN CERTIFICATE----- +MIICnzCCAgigAwIBAgIBAjANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJHQjET +MBEGA1UECAwKRGVyYnlzaGlyZTEOMAwGA1UEBwwFRGVyYnkxFTATBgNVBAoMDFBh +aG8gUHJvamVjdDEQMA4GA1UECwwHVGVzdGluZzEQMA4GA1UEAwwHUm9vdCBDQTAe +Fw0xMzA3MjkxOTIxMzBaFw0xODA3MjgxOTIxMzBaMGwxCzAJBgNVBAYTAkdCMRMw +EQYDVQQIDApEZXJieXNoaXJlMRUwEwYDVQQKDAxQYWhvIFByb2plY3QxEDAOBgNV +BAsMB1Rlc3RpbmcxHzAdBgNVBAMMFkFsdGVybmF0aXZlIFNpZ25pbmcgQ0EwgZ8w +DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANMWyMMMkOVoPRETp477EcXeqj9NrJVP +xMJgit+Vtdt1BHZCGV/ZYw7kwI7bpV8h7PM9oMGCi2G0Gls8nkK9X1u0qACN4b+Z +k8hFH20pq2fwNZxIC6CiGDJwNV7q/h8zq7WF7x0qqXVgOO06M75dQInLC7Ml6Oe8 +E2tiKB2nnKqZAgMBAAGjUDBOMB0GA1UdDgQWBBQ6cExddsa0z+e8S/TOxrhGwpVB +mzAfBgNVHSMEGDAWgBRKK2nWMR2jaOhGb/tL8462jVEOvzAMBgNVHRMEBTADAQH/ +MA0GCSqGSIb3DQEBBQUAA4GBAC903e/aA88UeK5vDQQpddvFosD9Hka/PCU8Azum +9PE6iVSD6ToP14GajX8ta7HKF3/vkxjEaLiyHdKc2Z9mnRglGLRPcr8kxQwt/M+t +yP8l8TYScrRG4ckXGcUe9SaKrjNfaRZvYs78usOjxVCjpUKpAmold5A+47flrH8/ +uxwX +-----END CERTIFICATE----- diff --git a/test/ssl/test-alt-ca.key b/test/ssl/test-alt-ca.key new file mode 100644 index 00000000..a9450e1b --- /dev/null +++ b/test/ssl/test-alt-ca.key @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDTFsjDDJDlaD0RE6eO+xHF3qo/TayVT8TCYIrflbXbdQR2Qhlf +2WMO5MCO26VfIezzPaDBgothtBpbPJ5CvV9btKgAjeG/mZPIRR9tKatn8DWcSAug +ohgycDVe6v4fM6u1he8dKql1YDjtOjO+XUCJywuzJejnvBNrYigdp5yqmQIDAQAB +AoGAFaQtWwnrxQlF0X1hXWBSNyYX8DuHaRtvgboiIsAXj/NUTMeEEHaaGEnNkBfm +wXUZ9OoplA1NOuwbE6WIWDFQGEgma/yLBdy4HYxQpAbJ1qnR7DyoxQ8NHPhBH+cW +GI92g7NqDEphdoHrWYy5YZYCFVr3pTHXbxlBn/VTLBsQnIECQQDr9BcQxEnPfi6e +Kk8cenA/54tGl7Ewpklb8XBrQrm/djfOAFt+CTMexerBv7BnfgriAg5wtlHtTkpK +BLLULE3pAkEA5QXmZ2WvGl0kvgBYGdiOZAruMobOVxxVxF05gvh8Sw6fNj8pI9pn +sbzyFZWIjcuDBfTLx+GVvkhqtQhs6ZYZMQJBAOSfjR3c45veKrNsUV1Jsavp4cST +xMdbyCcDaSc07x/6HxZGuGAF7/d4VABJiVauBUN6NJ23uuhR/J99r/zvtMkCQCQe +qhfkkZk213Sf2UU6QjrE/ow5dpGGhoBRs6BUUEYGKFYF4BcnevMtOYDt9HtofWGT +GhCMI3G/OhUTHxo38gECQG0nSN+QQ4tddHcktz1rnfwbnmTuNloZLC4ahR67lz75 +uP42Ct0dXPjzakzDCGI2CgNk5QGk/IUO6fq4mYVxqRI= +-----END RSA PRIVATE KEY----- diff --git a/test/ssl/test-bad-root-ca.crt b/test/ssl/test-bad-root-ca.crt new file mode 100644 index 00000000..7d404750 --- /dev/null +++ b/test/ssl/test-bad-root-ca.crt @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICsDCCAhmgAwIBAgIJANKB0fFTAhRpMA0GCSqGSIb3DQEBBQUAMHExCzAJBgNV +BAYTAkdCMRMwEQYDVQQIDApEZXJieXNoaXJlMQ4wDAYDVQQHDAVEZXJieTEVMBMG +A1UECgwMUGFobyBQcm9qZWN0MRAwDgYDVQQLDAdUZXN0aW5nMRQwEgYDVQQDDAtC +YWQgUm9vdCBDQTAeFw0xMzA3MjkxOTIxMjlaFw0yMzA3MjcxOTIxMjlaMHExCzAJ +BgNVBAYTAkdCMRMwEQYDVQQIDApEZXJieXNoaXJlMQ4wDAYDVQQHDAVEZXJieTEV +MBMGA1UECgwMUGFobyBQcm9qZWN0MRAwDgYDVQQLDAdUZXN0aW5nMRQwEgYDVQQD +DAtCYWQgUm9vdCBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA6+nf2D7S +IP42qMVmfAEpKZw22qF0mLVjjL22bWVHwwE1CS5euzD/gBM7i0u7hvFgbvI13Yq4 +Du2ebfjv3n4TAIIQg+UOAY5NbzfUG0A+50J6tPpNtnTij3KXskhQRAlvjDSd3TlU +UiONY2HMwaU56ktqXZzZE7prU0RICZ+DK8cCAwEAAaNQME4wHQYDVR0OBBYEFH/5 +0qkqiFd2x/lspeK61TO4PGF1MB8GA1UdIwQYMBaAFH/50qkqiFd2x/lspeK61TO4 +PGF1MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEARtsgIzT+IVRJHYT1 +wP7C2PuXxbRXFG8a0qqGaA0f4SuICq7NvC3bF5l9zDh4yMvftj8keTiOIa3+alw3 +ucdTz25Jaq/ZER/c68cklMPqcgdwcb/RbxpY5t3PittU2J5wAn/MmFfRiqbsxhgW +hkYbAtnqBXzJ8HdN/HmIyFW7+q4= +-----END CERTIFICATE----- diff --git a/test/ssl/test-bad-root-ca.key b/test/ssl/test-bad-root-ca.key new file mode 100644 index 00000000..ffa821ed --- /dev/null +++ b/test/ssl/test-bad-root-ca.key @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDr6d/YPtIg/jaoxWZ8ASkpnDbaoXSYtWOMvbZtZUfDATUJLl67 +MP+AEzuLS7uG8WBu8jXdirgO7Z5t+O/efhMAghCD5Q4Bjk1vN9QbQD7nQnq0+k22 +dOKPcpeySFBECW+MNJ3dOVRSI41jYczBpTnqS2pdnNkTumtTREgJn4MrxwIDAQAB +AoGBAJk4o/bqDkX5dfy1gPOHOXnaCNKEzJqmLMrrKIHypuIjdZPJ9yLzFu7TDvhQ +rrJdMTm9vHhwMU0Yza41YW2LSsDpeCI0RkpMxG+Aqaxz+kRYPzwDFFI6YAX0NWpS +O9iie9+sDp0MfOwPlDwtY9T7OegrPH/ngtxWxFp7R0YxVLQJAkEA+Or0TgAklxy/ +2LQV27OPFXc0ejYf67hLNdOC66PhTCO18avjEpDEeA00vF5DkqT+VXJVz2XyXX97 ++cCAf3sYhQJBAPKgM3pmHrhMxr+qgyqiTiKD42kASWLDGEDP0EP4tVaZNdwWH2XG +tSanhf6eOdoHlq0+3c3tIDwJZ+uCr21ACtsCQAiUeLVTle9Lg2Vh17sJ9m2j/UAV +K4aBhL4nO0UKEhMAzB23cg1KxirpMZ8olKWyYD3rwf9zISaN5WUXeJZsVM0CQQC5 +GEhNb0yuUzwoil+ojcvH/w/lUeeqZaXCBAghYsKMvzNcpK/tSAt44sKRfYoq8DEe +F+DEscsuogpanAdS9FGTAkAt8POChqwkCSjXQ9TlPQhdL4bRcENBQz6xp9TEOYT+ +M+FFifLj/ke8sRWXjrar1k45u8VWJJmd/0gmsUSiWoaS +-----END RSA PRIVATE KEY----- diff --git a/test/ssl/test-fake-root-ca.crt b/test/ssl/test-fake-root-ca.crt new file mode 100644 index 00000000..239a74bc --- /dev/null +++ b/test/ssl/test-fake-root-ca.crt @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICqDCCAhGgAwIBAgIJALWM56dkMt5jMA0GCSqGSIb3DQEBBQUAMG0xCzAJBgNV +BAYTAkdCMRMwEQYDVQQIDApEZXJieXNoaXJlMQ4wDAYDVQQHDAVEZXJieTEVMBMG +A1UECgwMUGFobyBQcm9qZWN0MRAwDgYDVQQLDAdUZXN0aW5nMRAwDgYDVQQDDAdS +b290IENBMB4XDTEzMDcyOTE5MjEzMFoXDTIzMDcyNzE5MjEzMFowbTELMAkGA1UE +BhMCR0IxEzARBgNVBAgMCkRlcmJ5c2hpcmUxDjAMBgNVBAcMBURlcmJ5MRUwEwYD +VQQKDAxQYWhvIFByb2plY3QxEDAOBgNVBAsMB1Rlc3RpbmcxEDAOBgNVBAMMB1Jv +b3QgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOpNNgRF6qhcGxndkPFE +1uZVQZ2x9GV3UlARuTnG89MX+6W+fXQ0gfdcbKs1/puhFqvrcqrWmoIgRtM/lZR/ +YDs5EXfpb13V5pDDn8X7AD2+poUb9eHxcB6fKuRbyt1PsS42umwUlpIDtK6p6H8/ +ZfxSiOE73kyY6CUvJfTC4WHrAgMBAAGjUDBOMB0GA1UdDgQWBBSXmasVth7iUHhF +8MDaBnSIGBV4qzAfBgNVHSMEGDAWgBSXmasVth7iUHhF8MDaBnSIGBV4qzAMBgNV +HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBANAYCcz14fk3Y+9CBMm/kitCWAkI +Ia54KL0A8ynqrLHssO3Ilq+wb10vSNLxhsdws3zNAfXteFxOvGm24Yu+8oTBQ26K +QfTp/cH9yoF97ONMxg7rqANOJeYv0BeJdDcgjCMgmql5ETEz2cf9tTWBUAtd1ZZC +YPS5aiNsetk+XuS9 +-----END CERTIFICATE----- diff --git a/test/ssl/test-fake-root-ca.key b/test/ssl/test-fake-root-ca.key new file mode 100644 index 00000000..4a040e9a --- /dev/null +++ b/test/ssl/test-fake-root-ca.key @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDqTTYEReqoXBsZ3ZDxRNbmVUGdsfRld1JQEbk5xvPTF/ulvn10 +NIH3XGyrNf6boRar63Kq1pqCIEbTP5WUf2A7ORF36W9d1eaQw5/F+wA9vqaFG/Xh +8XAenyrkW8rdT7EuNrpsFJaSA7Suqeh/P2X8UojhO95MmOglLyX0wuFh6wIDAQAB +AoGBAMhOUgu9Kivc8l5eiXd6fq5T3NDQPjwwknJZdJzsda7WJhFAlUgvS50Jqu2E +L7MlOJippVJgPZ9ZsLMQ/PQDIWRdLg2K9VLS4nPl3p7LzHoDmqDnMLPo9fUGBile +EnWwSSCWrz8ATyDO1ct5oJmK/S9QRxdvtw+6SbmorhnzypihAkEA+9LNpjnpuOWf +iF0TGWKhK53WPtiCBnuisXGZEZws9mzFGlfdR98sBDyekl7oHOb+JI0SDpPl3PBE +hZXcF7VPtQJBAO4wA1sxXqfYUazt6SInUTzpaNZ9xPrK0p1PgxZLxJrZV6hZByvW +FGb+cKGnOHIYq4tnCg0cyRe1xX4MJU6wrx8CQGRtNUZNYkAykuS2+Z7uDohucbqu +bWxYchGB1CGJvwSnbBONZtn6znsCEdsdrkOYe1HoUIMvyEPMLgd4NEXgMOECQF+u +y/pbR9IXVSAp5oiA0OKuRR49Id85kQf+xAM15sHp44vOT9ItSr7hIa/etA8pl+gF +OYVw9dtfevmauXX2BjMCQQCrse1jUAp3xmsXwb1JieclSh/C/FcGeo6DYpIcm9bK +RiVCmpzy3hOqYW137l5WvpUwZmN2wPvaKCacF/t75EiG +-----END RSA PRIVATE KEY----- diff --git a/test/ssl/test-root-ca.crt.text b/test/ssl/test-root-ca.crt.text new file mode 100644 index 00000000..bad317d4 --- /dev/null +++ b/test/ssl/test-root-ca.crt.text @@ -0,0 +1,59 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + aa:f3:c2:67:57:21:4c:6c + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=GB, ST=Derbyshire, L=Derby, O=Paho Project, OU=Testing, CN=Root CA + Validity + Not Before: Jul 29 19:21:29 2013 GMT + Not After : Jul 27 19:21:29 2023 GMT + Subject: C=GB, ST=Derbyshire, L=Derby, O=Paho Project, OU=Testing, CN=Root CA + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (1024 bit) + Modulus: + 00:a6:cf:cc:41:16:08:ab:23:8f:08:c9:ef:ce:ee: + 43:7d:a4:e4:47:6a:a0:37:5d:30:48:d2:55:b6:4d: + 48:d1:30:51:ec:35:2f:b3:bc:35:36:e6:b4:21:1e: + 54:54:23:38:b0:1d:99:d8:85:de:b4:1b:5c:75:7e: + 65:ec:34:8e:dd:a0:e2:fb:4f:a6:5d:46:38:6e:a3: + 03:fe:98:ce:72:80:c9:07:6f:18:27:58:7c:66:54: + 37:6b:4d:fa:66:ed:57:15:aa:90:76:62:b5:00:d0: + 19:a4:87:9f:1d:b8:35:7e:b8:f4:b6:b6:bb:21:72: + fb:b9:7d:a3:cf:be:c4:f3:8d + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 4A:2B:69:D6:31:1D:A3:68:E8:46:6F:FB:4B:F3:8E:B6:8D:51:0E:BF + X509v3 Authority Key Identifier: + keyid:4A:2B:69:D6:31:1D:A3:68:E8:46:6F:FB:4B:F3:8E:B6:8D:51:0E:BF + + X509v3 Basic Constraints: + CA:TRUE + Signature Algorithm: sha1WithRSAEncryption + 47:7e:81:6f:3a:fd:6f:9f:8a:cc:f9:3c:51:c0:78:4c:3b:ce: + 7f:6a:77:32:c7:9b:bf:90:66:03:4b:67:d8:7b:fd:96:e1:39: + b4:54:14:c4:6d:53:6c:66:e1:a9:b2:87:ce:61:ee:15:04:e5: + 1d:84:da:e5:b6:39:7b:a6:89:ce:ff:0f:86:43:ea:e9:e3:af: + 89:b9:8f:05:56:0d:3a:93:51:82:1c:35:2a:e2:ca:80:d6:01: + 59:4f:7c:e5:9a:53:93:72:52:1a:92:d4:33:36:f2:db:ce:59: + 51:d5:2c:2c:66:55:c6:65:b4:94:2a:a3:97:87:6d:0f:fe:1e: + 37:f1 +-----BEGIN CERTIFICATE----- +MIICqDCCAhGgAwIBAgIJAKrzwmdXIUxsMA0GCSqGSIb3DQEBBQUAMG0xCzAJBgNV +BAYTAkdCMRMwEQYDVQQIDApEZXJieXNoaXJlMQ4wDAYDVQQHDAVEZXJieTEVMBMG +A1UECgwMUGFobyBQcm9qZWN0MRAwDgYDVQQLDAdUZXN0aW5nMRAwDgYDVQQDDAdS +b290IENBMB4XDTEzMDcyOTE5MjEyOVoXDTIzMDcyNzE5MjEyOVowbTELMAkGA1UE +BhMCR0IxEzARBgNVBAgMCkRlcmJ5c2hpcmUxDjAMBgNVBAcMBURlcmJ5MRUwEwYD +VQQKDAxQYWhvIFByb2plY3QxEDAOBgNVBAsMB1Rlc3RpbmcxEDAOBgNVBAMMB1Jv +b3QgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKbPzEEWCKsjjwjJ787u +Q32k5EdqoDddMEjSVbZNSNEwUew1L7O8NTbmtCEeVFQjOLAdmdiF3rQbXHV+Zew0 +jt2g4vtPpl1GOG6jA/6YznKAyQdvGCdYfGZUN2tN+mbtVxWqkHZitQDQGaSHnx24 +NX649La2uyFy+7l9o8++xPONAgMBAAGjUDBOMB0GA1UdDgQWBBRKK2nWMR2jaOhG +b/tL8462jVEOvzAfBgNVHSMEGDAWgBRKK2nWMR2jaOhGb/tL8462jVEOvzAMBgNV +HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAEd+gW86/W+fisz5PFHAeEw7zn9q +dzLHm7+QZgNLZ9h7/ZbhObRUFMRtU2xm4amyh85h7hUE5R2E2uW2OXumic7/D4ZD +6unjr4m5jwVWDTqTUYIcNSriyoDWAVlPfOWaU5NyUhqS1DM28tvOWVHVLCxmVcZl +tJQqo5eHbQ/+Hjfx +-----END CERTIFICATE----- diff --git a/test/ssl/test-root-ca.key b/test/ssl/test-root-ca.key new file mode 100644 index 00000000..3cb71483 --- /dev/null +++ b/test/ssl/test-root-ca.key @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQCmz8xBFgirI48Iye/O7kN9pORHaqA3XTBI0lW2TUjRMFHsNS+z +vDU25rQhHlRUIziwHZnYhd60G1x1fmXsNI7doOL7T6ZdRjhuowP+mM5ygMkHbxgn +WHxmVDdrTfpm7VcVqpB2YrUA0Bmkh58duDV+uPS2trshcvu5faPPvsTzjQIDAQAB +AoGAFVhNqJ5rKYr5SISefPocBL3OwByyt6LjBM51TUiCYtIuCW2c1wDkRkwrDHnX +DJUdMdv3za8DmkROBnLQE/N9vEVhrfrDpBpU6ne/0tbxRlmDi1ihH+zgBUZkIkQo +kP5kQrV6Tfv7zhFv6cZzewRjGYzTwt8xWB54bKFlsJSlj/kCQQDY0AirnfIVyK+0 +mkqwYEiXWCQfkdRtbLBwpE8S/bbMQVb+Qxh8iCEdw3u1/c/GRFG/qUQ/54/Tetlx +ZWTTusuXAkEAxPY1+EyW90I8cDSBsrL+S47meut5Qp1Z/WspKjuZgozT7YnECK1k +JWyXIfBixMIqeQp+pVfVRtYSumvnVhAuewJAA3ylBw2NPShzGvZ4SQnjYPu76P4R +aoka9VTPKMEH1ZUfbwtpM2eFENN6A91HICstHWX9gQGaYI5TPO2ih30zlQJBAIRH +06FqVu3DJ3I4YW8R9eXrGHIvmaYapeikQuZhVs0uJdtf7i/hu+PClZIurzb0LLBU +UxBa+Bt2BOf9NkY/4ecCQQCYLGMiKrfckXC6VtQalLuEXkeE8spcdh/NV22Qpim5 +xfir6M2ZcPDxaFpPmSDSS1TRTaeulX/djUE35EdNPVP8 +-----END RSA PRIVATE KEY----- diff --git a/test/ssl/test-signing-ca.crt b/test/ssl/test-signing-ca.crt new file mode 100644 index 00000000..3a10151d --- /dev/null +++ b/test/ssl/test-signing-ca.crt @@ -0,0 +1,57 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 1 (0x1) + Signature Algorithm: sha1WithRSAEncryption + Issuer: C=GB, ST=Derbyshire, L=Derby, O=Paho Project, OU=Testing, CN=Root CA + Validity + Not Before: Jul 29 19:21:30 2013 GMT + Not After : Jul 28 19:21:30 2018 GMT + Subject: C=GB, ST=Derbyshire, O=Paho Project, OU=Testing, CN=Signing CA + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (1024 bit) + Modulus: + 00:dc:26:78:40:ae:b2:ad:2f:26:12:0a:d5:b1:18: + 80:16:d8:88:be:0b:42:ce:32:ad:12:d5:f5:78:1b: + 35:28:f2:13:1b:05:09:fb:7e:d7:d9:a1:8a:0d:4a: + fe:95:37:d4:16:75:83:e4:6a:44:34:33:57:2e:49: + ba:bc:b4:cf:d0:c0:87:e0:bc:f0:60:76:14:00:d6: + eb:cb:f6:db:b3:43:f1:c8:4d:4a:0a:bb:e0:37:7c: + 8e:93:1f:a0:87:68:59:fe:0c:25:40:f3:7c:fd:71: + 90:55:ef:de:18:b4:08:86:c9:75:c2:99:2f:ce:12: + bf:c5:5e:cf:5f:f1:06:53:07 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Subject Key Identifier: + 29:4D:6E:C7:F2:F7:71:72:DA:27:9C:9C:AB:DA:07:1D:47:9C:D8:41 + X509v3 Authority Key Identifier: + keyid:4A:2B:69:D6:31:1D:A3:68:E8:46:6F:FB:4B:F3:8E:B6:8D:51:0E:BF + + X509v3 Basic Constraints: + CA:TRUE + Signature Algorithm: sha1WithRSAEncryption + 48:ec:d7:80:8a:8f:82:a6:42:b1:89:2c:b9:4b:6d:0a:37:b8: + 72:19:05:de:75:80:0c:d6:41:97:b2:d7:fe:99:cb:7e:c4:0e: + 77:97:09:a8:9f:87:ff:0b:de:3f:1c:dc:1e:fe:09:36:a7:f5: + 54:9a:85:4e:fb:6f:27:fe:0f:29:45:61:8d:07:c6:0c:da:37: + 3d:a3:69:4b:82:71:e6:24:e0:87:a6:ee:d5:87:61:dd:8f:08: + fe:33:a6:1f:ae:b2:ae:1f:d8:2c:20:c8:a6:fc:33:0e:82:68: + 80:23:61:10:ad:5c:1d:80:d6:b1:5f:e4:af:66:6d:63:10:e4: + 96:e4 +-----BEGIN CERTIFICATE----- +MIICkzCCAfygAwIBAgIBATANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJHQjET +MBEGA1UECAwKRGVyYnlzaGlyZTEOMAwGA1UEBwwFRGVyYnkxFTATBgNVBAoMDFBh +aG8gUHJvamVjdDEQMA4GA1UECwwHVGVzdGluZzEQMA4GA1UEAwwHUm9vdCBDQTAe +Fw0xMzA3MjkxOTIxMzBaFw0xODA3MjgxOTIxMzBaMGAxCzAJBgNVBAYTAkdCMRMw +EQYDVQQIDApEZXJieXNoaXJlMRUwEwYDVQQKDAxQYWhvIFByb2plY3QxEDAOBgNV +BAsMB1Rlc3RpbmcxEzARBgNVBAMMClNpZ25pbmcgQ0EwgZ8wDQYJKoZIhvcNAQEB +BQADgY0AMIGJAoGBANwmeECusq0vJhIK1bEYgBbYiL4LQs4yrRLV9XgbNSjyExsF +Cft+19mhig1K/pU31BZ1g+RqRDQzVy5Jury0z9DAh+C88GB2FADW68v227ND8chN +Sgq74Dd8jpMfoIdoWf4MJUDzfP1xkFXv3hi0CIbJdcKZL84Sv8Vez1/xBlMHAgMB +AAGjUDBOMB0GA1UdDgQWBBQpTW7H8vdxctonnJyr2gcdR5zYQTAfBgNVHSMEGDAW +gBRKK2nWMR2jaOhGb/tL8462jVEOvzAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEB +BQUAA4GBAEjs14CKj4KmQrGJLLlLbQo3uHIZBd51gAzWQZey1/6Zy37EDneXCaif +h/8L3j8c3B7+CTan9VSahU77byf+DylFYY0HxgzaNz2jaUuCceYk4Iem7tWHYd2P +CP4zph+usq4f2CwgyKb8Mw6CaIAjYRCtXB2A1rFf5K9mbWMQ5Jbk +-----END CERTIFICATE----- diff --git a/test/ssl/test-signing-ca.key b/test/ssl/test-signing-ca.key new file mode 100644 index 00000000..2826af04 --- /dev/null +++ b/test/ssl/test-signing-ca.key @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICWwIBAAKBgQDcJnhArrKtLyYSCtWxGIAW2Ii+C0LOMq0S1fV4GzUo8hMbBQn7 +ftfZoYoNSv6VN9QWdYPkakQ0M1cuSbq8tM/QwIfgvPBgdhQA1uvL9tuzQ/HITUoK +u+A3fI6TH6CHaFn+DCVA83z9cZBV794YtAiGyXXCmS/OEr/FXs9f8QZTBwIDAQAB +AoGAEEMDNPvylNpbvI9yU3+Uzps2FpusVqDlqfOGC1YvKhQflypbH2myNhA5q1uz +zH/wOax6jp/O4/A6619k3NWaWBUSDeD1jczdzzDB6Eq1+6oj1szwLBA5EQHz5tuM +0BIWVGv12bqY/LGBbYsIABBTr584rA3QSgM3K4SPxKKiyYECQQD6ELRf6hfd5qhs +8RJY5f3yXaV6rSpz8meht4VwMguiYwNBHrHAHxgumMfLiJ2PWa+6aFUxcWs93RfL +5Tzn2DtHAkEA4WADib1R05V3X2XcU9ursA0va5nPEtQ0fNJAUm4iJOtEElk61Ku4 +0KFokloTovpAgno+QxQdy1trwBz/ov2KQQJAaNeaGGCYUxPC57IHBDihSP1UROPX +Wbd3FYlRK+H/mLy0f5fz5F3lEJxDoCUOEi0DDT9zAIDR+qT4tibNa1LwPwJAQDtT +BtCUH487pE6tiqDSv6wiVbJSV/VuuBxcBKIqzQbYMbqIj9AZLiyyVvOhIRPditI4 +KHn1O93kSa56FQPZgQJAV0mCqYciPBU4z3qtLGIDqdzTszBh4U5cTu5M+TICrg20 +dtH2X0dETx7c2+7FDkr1ktVq9skJAXMw6mWM8FMYFg== +-----END RSA PRIVATE KEY-----