mirror of https://github.com/wolfSSL/wolfTPM.git
TLS client / server example improvements and cleanups. Adds support for using wolfSSL client/server examples with mutual auth certificate validation. Added new dummy key as to not conflict with wolfSSL test keys.
parent
51a5740958
commit
bf67b3fd68
Binary file not shown.
|
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN EC PARAMETERS-----
|
||||
BggqhkjOPQMBBw==
|
||||
-----END EC PARAMETERS-----
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MHcCAQEEIAUP6rYsfNM8Zj1rRNWK1Bz2KjVJsjZ97NSzmitPccjToAoGCCqGSM49
|
||||
AwEHoUQDQgAEQ5j3M3e0VQLx83mXZ+21OnrhfMaoI4s6aELdaE9Iby2afEcgHxNp
|
||||
cQVCW58jfeCmXdQRRLGRZlDALIxxNQ4otA==
|
||||
-----END EC PRIVATE KEY-----
|
||||
Binary file not shown.
|
|
@ -0,0 +1,27 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEAz92yF0nrv/vFGRNjhkm8/o7tIW5TGJxB1ewSMfD5kAgVaC8A
|
||||
nKw2KPbYUKDUfN/nD+E20d3AK/A9yfBb5HZIkfCSKYJ1fwtBOXdSzR8wo8N5kr0K
|
||||
fxayBv1JxU00JttJBttJY7blpOzAbSTxgg+DG7ENo4tqOTm2s6Phd2mMx4Phvp75
|
||||
t9vf+Jh8nchyeL8TYiehv0srBBjNLBB+pTMI1Enx7JlvLgu007PCIALpOqGzgZsM
|
||||
ArDenu8KR276200THh/Se8ZI6CfevI1MYFpxtcN//HwowZnyejvNanb+qJvdAx7r
|
||||
tJ1wXHofthLszaxqzSwlU+801cWXFNSyhgNfiQIDAQABAoIBAF2evxBIJdsA/UOO
|
||||
/PtFiM6p9tlgxCJIdkpwGb3Oh8g8K9ARo1ftJDONAd5GoY1glsQLLlKVanEfseSa
|
||||
0fhy4bqBPINfk6XVntnQCUYDbzfC2aWiaPDWevY07B3l6MA7cYeaClLT1FhUnVJL
|
||||
Gk72x5kYRElNiFkfyk7cV7cdnd9Zkdku4FSqTo+SgoVw+ZOQOjDNs3OBk+f5H/ap
|
||||
qdSuiQ44EWH399ybmUv+wHF4UxgPI6kRoKpX7jmq6ip6jRJpLIJNoOUcs2mdoTCj
|
||||
QPqGQNOL+a+YfRcHoyniV+9Hz4EiTUdjpC8aj8MmH/bFgf8UqYdWGIoY/TfDS47g
|
||||
aywHSwUCgYEA7VEGkbiUXhebIiXvI3ZhJvqs7sGZjlU4hdIVBm67Rbv+X/fSpEEV
|
||||
JGeOomu6qiiEImPuqKDQ6keMrE6YGIryGXZQnf7RWcPBIzsxc8dxPpTIbX+6MPJM
|
||||
Gn50Unigq2kMRFnQsP4v6MIY5ySLc99PQJIMjGySJ7w/W3lEwTLMorcCgYEA4Dsc
|
||||
xMRpDWtXGbdZGJKyCTlml9EY3mtfxZsRRx7q46w2KzCZgQA9OUEDkHfeSuFI35iG
|
||||
Azvqr8j210/mrnDyPbvyY7ktPAizEJ6XbI0oNK7a2aGOOlF6oRQ/++o7tJOqFHq0
|
||||
18p7Ya/1hxpkqT48et0RfwEtppHtPSicZ8Jcz78CgYEAzgxZzdAbUg7g7SdOmNXB
|
||||
yJxB5hNGBiTMLLSY+LrP8t4lIKIFzAOOHcukNjWfHvqKr2lg4ByxB5kT9M9Qk46g
|
||||
Yacum9+RWYTzfml4qHP0SUfZNel+ed0GYsKEsM53ghx1QCtTXTl103wjLx21zueG
|
||||
4iNsrcfepo113TBPmAdJUcUCgYBGGTS9LsnIsC3ilDb+P5341EEGZQ/pOJgQJpIY
|
||||
McosssGcbu0OLwz0wSZkG5Uaw6MMg5ohmLGdkq3YUdpD3ntcYU09b758bhvMrkeY
|
||||
X+iZz7ALKT5VbPNxN+tozaksop0hGds/OsWnnGKdgdrGLfaqUkIN+khTMnuACxoa
|
||||
NeDd8QKBgHZGuVeRP2RdQjdwnUQ4CQlCPi6KeqRXS4GVZUc883dU433sBskmq91m
|
||||
c1SGMSZ1W4Sr0qJqm27dRa6BSRKNAxwba1s3+ucFn71m3WzXFg3MZBnCzcOp7XD6
|
||||
ddhB98aE6EDw5ZOI4k5P5F/fU6unBtxkflHofhwzn79eWLx9o4CE
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
|
@ -6,4 +6,9 @@ EXTRA_DIST += \
|
|||
certs/certreq.sh \
|
||||
certs/ca-rsa.cnf \
|
||||
certs/ca-ecc.cnf \
|
||||
certs/wolfssl-website-ca.pem
|
||||
certs/wolf-ca-ecc-cert.pem \
|
||||
certs/wolf-ca-rsa-cert.pem \
|
||||
certs/dummy-ecc.pem \
|
||||
certs/dummy-rsa.pem \
|
||||
certs/dummy-ecc.der \
|
||||
certs/dummy-rsa.der
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIICiTCCAjCgAwIBAgIJANUT7c08LkF0MAoGCCqGSM49BAMCMIGXMQswCQYDVQQG
|
||||
EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEQMA4G
|
||||
A1UECgwHd29sZlNTTDEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxGDAWBgNVBAMMD3d3
|
||||
dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
|
||||
Fw0xODA5MDcyMDEzNDNaFw0zODA5MDIyMDEzNDNaMIGXMQswCQYDVQQGEwJVUzET
|
||||
MBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEQMA4GA1UECgwH
|
||||
d29sZlNTTDEUMBIGA1UECwwLRGV2ZWxvcG1lbnQxGDAWBgNVBAMMD3d3dy53b2xm
|
||||
c3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTBZMBMGByqG
|
||||
SM49AgEGCCqGSM49AwEHA0IABGbPpebypg/W274c+uFJGMigpJy/LW0MKy1VoU88
|
||||
FSqefHY5C+es8nogRaXYU0itI+85KuUfPhJVM6Hc2evFsBajYzBhMB0GA1UdDgQW
|
||||
BBSJGbGXpAUTPLBXRrJiJ2RNoG53WjAfBgNVHSMEGDAWgBSJGbGXpAUTPLBXRrJi
|
||||
J2RNoG53WjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAKBggqhkjO
|
||||
PQQDAgNHADBEAiArQgfTsykjwoBFMa/elWAqW5r38xW48flizWImoA7jfwIgbDO/
|
||||
mF4z7Vg2cbdvjbLZenQBaXmFNXULqAlpJnlRyl4=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 9727763710660753659 (0x86fff58e10deb8fb)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
|
||||
Validity
|
||||
Not Before: Apr 13 15:23:09 2018 GMT
|
||||
Not After : Jan 7 15:23:09 2021 GMT
|
||||
Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (2048 bit)
|
||||
Modulus:
|
||||
00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a:
|
||||
f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac:
|
||||
de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98:
|
||||
21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77:
|
||||
32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1:
|
||||
8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3:
|
||||
a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed:
|
||||
a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95:
|
||||
82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c:
|
||||
3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db:
|
||||
76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc:
|
||||
73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98:
|
||||
de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68:
|
||||
cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2:
|
||||
b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3:
|
||||
13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98:
|
||||
ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed:
|
||||
36:79
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
|
||||
DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
|
||||
serial:86:FF:F5:8E:10:DE:B8:FB
|
||||
|
||||
X509v3 Basic Constraints:
|
||||
CA:TRUE
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
9e:28:88:72:00:ca:e6:e7:97:ca:c1:f1:1f:9e:12:b2:b8:c7:
|
||||
51:ea:28:e1:36:b5:2d:e6:2f:08:23:cb:a9:4a:87:25:c6:5d:
|
||||
89:45:ea:f5:00:98:ac:76:fb:1b:af:f0:ce:64:9e:da:08:bf:
|
||||
b6:eb:b4:b5:0c:a0:e7:f6:47:59:1c:61:cf:2e:0e:58:a4:82:
|
||||
ac:0f:3f:ec:c4:ae:80:f7:b0:8a:1e:85:41:e8:ff:fe:fe:4f:
|
||||
1a:24:d5:49:fa:fb:fe:5e:e5:d3:91:0e:4f:4e:0c:21:51:71:
|
||||
83:04:6b:62:7b:4f:59:76:48:81:1e:b4:f7:04:47:8a:91:57:
|
||||
a3:11:a9:f2:20:b4:78:33:62:3d:b0:5e:0d:f9:86:38:82:da:
|
||||
a1:98:8d:19:06:87:21:39:b7:02:f7:da:7d:58:ba:52:15:d8:
|
||||
3b:c9:7b:58:34:a0:c7:e2:7c:a9:83:13:e1:b6:ec:01:bf:52:
|
||||
33:0b:c4:fe:43:d3:c6:a4:8e:2f:87:7f:7a:44:ea:ca:53:6c:
|
||||
85:ed:65:76:73:31:03:4e:ea:bd:35:54:13:f3:64:87:6b:df:
|
||||
34:dd:34:a1:88:3b:db:4d:af:1b:64:90:92:71:30:8e:c8:cc:
|
||||
e5:60:24:af:31:16:39:33:91:50:f9:ab:68:42:74:7a:35:d9:
|
||||
dd:c8:c4:52
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEqjCCA5KgAwIBAgIJAIb/9Y4Q3rj7MA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD
|
||||
VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
|
||||
A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
|
||||
dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
|
||||
Fw0xODA0MTMxNTIzMDlaFw0yMTAxMDcxNTIzMDlaMIGUMQswCQYDVQQGEwJVUzEQ
|
||||
MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3
|
||||
dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns
|
||||
LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI
|
||||
hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D
|
||||
mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx
|
||||
i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J
|
||||
XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc
|
||||
/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI
|
||||
/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB
|
||||
+TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU
|
||||
J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD
|
||||
VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290
|
||||
aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
|
||||
MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAhv/1jhDeuPswDAYD
|
||||
VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAniiIcgDK5ueXysHxH54SsrjH
|
||||
Ueoo4Ta1LeYvCCPLqUqHJcZdiUXq9QCYrHb7G6/wzmSe2gi/tuu0tQyg5/ZHWRxh
|
||||
zy4OWKSCrA8/7MSugPewih6FQej//v5PGiTVSfr7/l7l05EOT04MIVFxgwRrYntP
|
||||
WXZIgR609wRHipFXoxGp8iC0eDNiPbBeDfmGOILaoZiNGQaHITm3AvfafVi6UhXY
|
||||
O8l7WDSgx+J8qYMT4bbsAb9SMwvE/kPTxqSOL4d/ekTqylNshe1ldnMxA07qvTVU
|
||||
E/Nkh2vfNN00oYg7202vG2SQknEwjsjM5WAkrzEWOTORUPmraEJ0ejXZ3cjEUg==
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
|
||||
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
|
||||
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
|
||||
MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
|
||||
YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
|
||||
aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
|
||||
jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
|
||||
xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
|
||||
1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
|
||||
snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
|
||||
U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
|
||||
9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
|
||||
BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
|
||||
AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
|
||||
yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
|
||||
38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
|
||||
AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
|
||||
DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
|
||||
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
|
||||
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
|
||||
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
|
||||
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
|
||||
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
|
||||
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
|
||||
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
|
||||
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
|
||||
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
|
||||
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
|
||||
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
|
||||
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
|
||||
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
|
||||
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
|
||||
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
|
||||
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
|
||||
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
|
||||
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
|
||||
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
|
||||
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
|
||||
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
|
||||
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
|
||||
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
|
||||
MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
|
||||
YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
|
||||
MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
|
||||
ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
|
||||
MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
|
||||
ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
|
||||
PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
|
||||
wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
|
||||
EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
|
||||
avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
|
||||
YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
|
||||
sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
|
||||
/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
|
||||
IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
|
||||
YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
|
||||
ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
|
||||
OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
|
||||
TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
|
||||
HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
|
||||
dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
|
||||
ReYNnyicsbkqWletNw+vHX/bvZ8=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
These examples demonstrate features of a TPM 2.0 module.
|
||||
|
||||
The examples create RSA and ECC keys in NV for testing using handles defined in `./examples/tpm_io.h`.
|
||||
The examples create RSA and ECC keys in NV for testing using handles defined in `./examples/tpm_test.h`.
|
||||
|
||||
The PKCS #7 and TLS examples require generating CSR's and signing them using a test script. See CSR and Certificate Signing below.
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ External script for generating test certificates based on TPM generated CSR's. T
|
|||
`./certs/certreq.sh`
|
||||
|
||||
The script creates the following X.509 files (also in .pem format):
|
||||
`./certs/ca-ecc-cert.der`s
|
||||
`./certs/ca-ecc-cert.der`
|
||||
`./certs/ca-rsa-cert.der`
|
||||
`./certs/client-rsa-cert.der`
|
||||
`./certs/client-ecc-cert.der`
|
||||
|
|
@ -62,35 +62,56 @@ The result is displayed to stdout on the console.
|
|||
|
||||
The TLS example uses TPM based ECDHE (ECC Ephemeral key) support. It can be disabled using `CFLAGS="-DWOLFTPM2_USE_SW_ECDHE"` or `#define WOLFTPM2_USE_SW_ECDHE`. We are also looking into using the 2-phase `TPM2_EC_Ephemeral` and `TPM2_ZGen_2Phase` methods for improved performance and scalability.
|
||||
|
||||
Note: The TPM2_CreatePrimary with TPM_RH_NULL for ephemeral key use has an issue with SLB9670 7.83 firmware. Please update to latest firmware or disable ECDHE support using WOLFTPM2_USE_SW_ECDHE to resolve.
|
||||
Note: To force ECC use with wolfSSL when RSA is enabled define `TLS_USE_ECC`.
|
||||
|
||||
Generation of the Client and Server Certificates requires running:
|
||||
1. `./examples/csr/csr`
|
||||
2. `./certs/certreq.sh`
|
||||
3. Copy the CA files from wolfTPM to wolfSSL certs directory.
|
||||
a. `cp ./certs/ca-ecc-cert.pem ../wolfssl/certs/tpm-ca-ecc-cert.pem`
|
||||
b. `cp ./certs/ca-rsa-cert.pem ../wolfssl/certs/tpm-ca-rsa-cert.pem`
|
||||
|
||||
|
||||
### TLS Client
|
||||
|
||||
Examples show using a TPM key and certificate for TLS mutual authentication (client authentication).
|
||||
|
||||
It uses macros defined at compile time for the host/port. See `TLS_HOST` and `TLS_PORT`.
|
||||
This example client connects to localhost on on port 11111 by default. These can be overriden using `TLS_HOST` and `TLS_PORT`.
|
||||
|
||||
Generation of the Client Certificate requires running:
|
||||
1. `./examples/csr/csr`
|
||||
2. `./certs/certreq.sh`
|
||||
You can validate using the wolfSSL example server this like:
|
||||
`./examples/server/server -b -p 11111 -g -d`
|
||||
|
||||
To validate client certificate use the following wolfSSL example server command:
|
||||
`./examples/server/server -b -p 11111 -g -A ./certs/ca-rsa-cert.pem`
|
||||
or
|
||||
`./examples/server/server -b -p 11111 -g -A ./certs/ca-ecc-cert.pem`
|
||||
|
||||
Then run the wolfTPM TLS client example:
|
||||
`./examples/tls/tls_client`.
|
||||
|
||||
|
||||
### TLS Server
|
||||
|
||||
This example shows using a TPM key and certificate for a TLS server. By default it listens on port 11111 and can be overridden at build-time using the `TLS_PORT` macro.
|
||||
|
||||
Generation of the Server Certificate requires running:
|
||||
1. `./examples/csr/csr`
|
||||
2. `./certs/certreq.sh`
|
||||
This example shows using a TPM key and certificate for a TLS server.
|
||||
|
||||
You can validate using the wolfSSL example client this like:
|
||||
`./examples/client/client -h 192.168.0.100 -p 11111 -d -g`
|
||||
|
||||
Or using your browser: `https://192.168.0.100:11111`
|
||||
By default it listens on port 11111 and can be overridden at build-time using the `TLS_PORT` macro.
|
||||
|
||||
With browsers you will get a certificate warning because it cannot validate the test server certificate.
|
||||
Run the wolfTPM TLS server example:
|
||||
`./examples/tls/tls_server`.
|
||||
|
||||
Then run the wolfSSL example client this like:
|
||||
`./examples/client/client -h localhost -p 11111 -g -d`
|
||||
|
||||
To validate server certificate use the following wolfSSL example client comment:
|
||||
`./examples/client/client -h localhost -p 11111 -g -A ./certs/ca-rsa-cert.pem`
|
||||
or
|
||||
`./examples/client/client -h localhost -p 11111 -g -A ./certs/ca-ecc-cert.pem`
|
||||
|
||||
|
||||
Or using your browser: `https://localhost:11111`
|
||||
|
||||
With browsers you will get certificate warnings until you load the test CA's `./certs/ca-rsa-cert.pem` and `./certs/ca-ecc-cert.pem` into your OS key store.
|
||||
For testing most browsers have a way to continue to the site anyways to bypass the warning.
|
||||
You can also load the generated test CA's at `./certs/ca-rsa-cert.pem` and `./certs/ca-ecc-cert.pem` into your OS key store.
|
||||
|
||||
|
||||
## Benchmark
|
||||
|
|
|
|||
|
|
@ -33,15 +33,21 @@
|
|||
#include <wolfssl/ssl.h>
|
||||
|
||||
#ifndef TLS_HOST
|
||||
#define TLS_HOST "www.wolfssl.com"
|
||||
#define TLS_HOST "localhost"
|
||||
#endif
|
||||
#ifndef TLS_PORT
|
||||
#define TLS_PORT 443
|
||||
#define TLS_PORT 11111
|
||||
#endif
|
||||
|
||||
/* enable for testing ECC key/cert */
|
||||
/* to manually choose a cipher suite */
|
||||
#if 0
|
||||
#define USE_TLS_ECC
|
||||
#ifndef TLS_CIPHER_SUITE
|
||||
#define TLS_CIPHER_SUITE "ECDHE-RSA-AES128-SHA256"
|
||||
#endif
|
||||
#endif
|
||||
/* enable for testing ECC key/cert when RSA is enabled */
|
||||
#if 0
|
||||
#define TLS_USE_ECC
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
@ -52,6 +58,17 @@
|
|||
*
|
||||
* Run ./certs/certreq.sh
|
||||
* Result is: ./certs/client-rsa-cert.pem and ./certs/client-ecc-cert.pem
|
||||
*
|
||||
* This example client connects to localhost on on port 11111 by default.
|
||||
* These can be overriden using `TLS_HOST` and `TLS_PORT`.
|
||||
*
|
||||
* You can validate using the wolfSSL example server this like:
|
||||
* ./examples/server/server -b -p 11111 -g -d
|
||||
*
|
||||
* To validate client certificate add the following wolfSSL example server args:
|
||||
* ./examples/server/server -b -p 11111 -g -A ./certs/tpm-ca-rsa-cert.pem
|
||||
* or
|
||||
* ./examples/server/server -b -p 11111 -g -A ./certs/tpm-ca-ecc-cert.pem
|
||||
*/
|
||||
|
||||
|
||||
|
|
@ -222,6 +239,115 @@ static void CloseAndCleanupSocket(SockIoCbCtx* sockIoCtx)
|
|||
/******************************************************************************/
|
||||
|
||||
|
||||
static int myVerify(int preverify, WOLFSSL_X509_STORE_CTX* store)
|
||||
{
|
||||
/* Verify Callback Arguments:
|
||||
* preverify: 1=Verify Okay, 0=Failure
|
||||
* store->current_cert: Current WOLFSSL_X509 object (only with OPENSSL_EXTRA)
|
||||
* store->error_depth: Current Index
|
||||
* store->domain: Subject CN as string (null term)
|
||||
* store->totalCerts: Number of certs presented by peer
|
||||
* store->certs[i]: A `WOLFSSL_BUFFER_INFO` with plain DER for each cert
|
||||
* store->store: WOLFSSL_X509_STORE with CA cert chain
|
||||
* store->store->cm: WOLFSSL_CERT_MANAGER
|
||||
* store->ex_data: The WOLFSSL object pointer
|
||||
*/
|
||||
|
||||
printf("In verification callback, error = %d, %s\n",
|
||||
store->error, wolfSSL_ERR_reason_error_string(store->error));
|
||||
printf("\tPeer certs: %d\n", store->totalCerts);
|
||||
printf("\tSubject's domain name at %d is %s\n",
|
||||
store->error_depth, store->domain);
|
||||
|
||||
(void)preverify;
|
||||
|
||||
/* If error indicate we are overriding it for testing purposes */
|
||||
if (store->error != 0) {
|
||||
printf("\tAllowing failed certificate check, testing only "
|
||||
"(shouldn't do this in production)\n");
|
||||
}
|
||||
|
||||
/* A non-zero return code indicates failure override */
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Function checks key to see if its the "dummy" key */
|
||||
static int myTpmCheckKey(wc_CryptoInfo* info, TpmCryptoDevCtx* ctx)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
#ifndef NO_RSA
|
||||
if (info && info->pk.type == WC_PK_TYPE_RSA) {
|
||||
byte e[sizeof(word32)], e2[sizeof(word32)];
|
||||
byte n[WOLFTPM2_WRAP_RSA_KEY_BITS/8], n2[WOLFTPM2_WRAP_RSA_KEY_BITS/8];
|
||||
word32 eSz = sizeof(e), e2Sz = sizeof(e);
|
||||
word32 nSz = sizeof(n), n2Sz = sizeof(n);
|
||||
RsaKey rsakey;
|
||||
word32 idx = 0;
|
||||
|
||||
/* export the raw public RSA portion */
|
||||
ret = wc_RsaFlattenPublicKey(info->pk.rsa.key, e, &eSz, n, &nSz);
|
||||
if (ret == 0) {
|
||||
/* load the modulus for the dummy key */
|
||||
ret = wc_InitRsaKey(&rsakey, NULL);
|
||||
if (ret == 0) {
|
||||
ret = wc_RsaPrivateKeyDecode(DUMMY_RSA_KEY, &idx, &rsakey,
|
||||
(word32)sizeof(DUMMY_RSA_KEY));
|
||||
if (ret == 0) {
|
||||
ret = wc_RsaFlattenPublicKey(&rsakey, e2, &e2Sz, n2, &n2Sz);
|
||||
}
|
||||
wc_FreeRsaKey(&rsakey);
|
||||
}
|
||||
}
|
||||
|
||||
if (ret == 0 && XMEMCMP(n, n2, nSz) == 0) {
|
||||
#ifdef DEBUG_WOLFTPM
|
||||
printf("Detected dummy key, so using TPM RSA key handle\n");
|
||||
#endif
|
||||
ret = 1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if defined(HAVE_ECC)
|
||||
if (info && info->pk.type == WC_PK_TYPE_ECDSA_SIGN) {
|
||||
byte qx[WOLFTPM2_WRAP_ECC_KEY_BITS/8], qx2[WOLFTPM2_WRAP_ECC_KEY_BITS/8];
|
||||
byte qy[WOLFTPM2_WRAP_ECC_KEY_BITS/8], qy2[WOLFTPM2_WRAP_ECC_KEY_BITS/8];
|
||||
word32 qxSz = sizeof(qx), qx2Sz = sizeof(qx2);
|
||||
word32 qySz = sizeof(qy), qy2Sz = sizeof(qy2);
|
||||
ecc_key eccKey;
|
||||
word32 idx = 0;
|
||||
|
||||
/* export the raw public ECC portion */
|
||||
ret = wc_ecc_export_public_raw(info->pk.eccsign.key, qx, &qxSz, qy, &qySz);
|
||||
if (ret == 0) {
|
||||
/* load the ECC public x/y for the dummy key */
|
||||
ret = wc_ecc_init(&eccKey);
|
||||
if (ret == 0) {
|
||||
ret = wc_EccPrivateKeyDecode(DUMMY_ECC_KEY, &idx, &eccKey,
|
||||
(word32)sizeof(DUMMY_ECC_KEY));
|
||||
if (ret == 0) {
|
||||
ret = wc_ecc_export_public_raw(&eccKey, qx2, &qx2Sz, qy2, &qy2Sz);
|
||||
}
|
||||
wc_ecc_free(&eccKey);
|
||||
}
|
||||
}
|
||||
|
||||
if (ret == 0 && XMEMCMP(qx, qx2, qxSz) == 0 &&
|
||||
XMEMCMP(qy, qy2, qySz) == 0) {
|
||||
#ifdef DEBUG_WOLFTPM
|
||||
printf("Detected dummy key, so using TPM ECC key handle\n");
|
||||
#endif
|
||||
ret = 1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
(void)info;
|
||||
(void)ctx;
|
||||
|
||||
/* non-zero return code means its a "dummy" key (not valid) and the
|
||||
provided TPM handle will be used, not the wolf public key info */
|
||||
return ret;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
/* --- BEGIN TLS Client Example -- */
|
||||
|
|
@ -278,6 +404,7 @@ int TPM2_TLS_Client(void* userCtx)
|
|||
XMEMSET(&wolfEccKey, 0, sizeof(wolfEccKey));
|
||||
tpmCtx.eccKey = &eccKey;
|
||||
#endif
|
||||
tpmCtx.checkKeyCb = myTpmCheckKey; /* detects if using "dummy" key */
|
||||
rc = wolfTPM2_SetCryptoDevCb(&dev, wolfTPM2_CryptoDevCb, &tpmCtx, &tpmDevId);
|
||||
if (rc != 0) goto exit;
|
||||
|
||||
|
|
@ -387,8 +514,9 @@ int TPM2_TLS_Client(void* userCtx)
|
|||
/* Server certificate validation */
|
||||
#if 0
|
||||
/* skip server cert validation for this test */
|
||||
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
|
||||
wolfSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, myVerify);
|
||||
#else
|
||||
wolfSSL_CTX_set_verify(ctx, WOLFSSL_VERIFY_PEER, myVerify);
|
||||
#ifdef NO_FILESYSTEM
|
||||
/* example loading from buffer */
|
||||
#if 0
|
||||
|
|
@ -398,12 +526,30 @@ int TPM2_TLS_Client(void* userCtx)
|
|||
}
|
||||
#endif
|
||||
#else
|
||||
/* Load CA Certificate */
|
||||
if (wolfSSL_CTX_load_verify_locations(ctx, "./certs/wolfssl-website-ca.pem",
|
||||
/* Load CA Certificates */
|
||||
#if !defined(NO_RSA) && !defined(TLS_USE_ECC)
|
||||
if (wolfSSL_CTX_load_verify_locations(ctx, "./certs/ca-rsa-cert.pem",
|
||||
0) != WOLFSSL_SUCCESS) {
|
||||
printf("Error loading wolfSSL website certs\n");
|
||||
printf("Error loading ca-rsa-cert.pem cert\n");
|
||||
goto exit;
|
||||
}
|
||||
if (wolfSSL_CTX_load_verify_locations(ctx, "./certs/wolf-ca-rsa-cert.pem",
|
||||
0) != WOLFSSL_SUCCESS) {
|
||||
printf("Error loading wolf-ca-rsa-cert.pem cert\n");
|
||||
goto exit;
|
||||
}
|
||||
#elif defined(HAVE_ECC)
|
||||
if (wolfSSL_CTX_load_verify_locations(ctx, "./certs/ca-ecc-cert.pem",
|
||||
0) != WOLFSSL_SUCCESS) {
|
||||
printf("Error loading ca-ecc-cert.pem cert\n");
|
||||
goto exit;
|
||||
}
|
||||
if (wolfSSL_CTX_load_verify_locations(ctx, "./certs/wolf-ca-ecc-cert.pem",
|
||||
0) != WOLFSSL_SUCCESS) {
|
||||
printf("Error loading wolf-ca-ecc-cert.pem cert\n");
|
||||
goto exit;
|
||||
}
|
||||
#endif
|
||||
#endif /* !NO_FILESYSTEM */
|
||||
#endif
|
||||
|
||||
|
|
@ -417,26 +563,40 @@ int TPM2_TLS_Client(void* userCtx)
|
|||
#endif
|
||||
#else
|
||||
/* Client certificate (mutual auth) */
|
||||
#if !defined(NO_RSA) && !defined(USE_TLS_ECC)
|
||||
#if !defined(NO_RSA) && !defined(TLS_USE_ECC)
|
||||
if ((rc = wolfSSL_CTX_use_certificate_file(ctx, "./certs/client-rsa-cert.pem",
|
||||
WOLFSSL_FILETYPE_PEM)) != WOLFSSL_SUCCESS) {
|
||||
printf("Error loading RSA client cert\n");
|
||||
goto exit;
|
||||
}
|
||||
|
||||
/* Private key is on TPM and crypto dev callbacks are used */
|
||||
/* TLS client (mutual auth) requires a dummy key loaded (workaround) */
|
||||
if (wolfSSL_CTX_use_PrivateKey_buffer(ctx, DUMMY_RSA_KEY,
|
||||
sizeof(DUMMY_RSA_KEY), WOLFSSL_FILETYPE_ASN1) != WOLFSSL_SUCCESS) {
|
||||
printf("Failed to set key!\r\n");
|
||||
goto exit;
|
||||
}
|
||||
#elif defined(HAVE_ECC)
|
||||
if ((rc = wolfSSL_CTX_use_certificate_file(ctx, "./certs/client-ecc-cert.pem",
|
||||
WOLFSSL_FILETYPE_PEM)) != WOLFSSL_SUCCESS) {
|
||||
printf("Error loading ECC client cert\n");
|
||||
goto exit;
|
||||
}
|
||||
|
||||
/* Private key is on TPM and crypto dev callbacks are used */
|
||||
/* TLS client (mutual auth) requires a dummy key loaded (workaround) */
|
||||
if (wolfSSL_CTX_use_PrivateKey_buffer(ctx, DUMMY_ECC_KEY,
|
||||
sizeof(DUMMY_ECC_KEY), WOLFSSL_FILETYPE_ASN1) != WOLFSSL_SUCCESS) {
|
||||
printf("Failed to set key!\r\n");
|
||||
goto exit;
|
||||
}
|
||||
#endif
|
||||
#endif /* !NO_FILESYSTEM */
|
||||
|
||||
/* No need to load private key, since its on TPM and crypto dev callbacks are used */
|
||||
|
||||
#if 0
|
||||
#ifdef TLS_CIPHER_SUITE
|
||||
/* Optionally choose the cipher suite */
|
||||
rc = wolfSSL_CTX_set_cipher_list(ctx, "ECDHE-RSA-AES128-GCM-SHA256");
|
||||
rc = wolfSSL_CTX_set_cipher_list(ctx, TLS_CIPHER_SUITE);
|
||||
if (rc != WOLFSSL_SUCCESS) {
|
||||
goto exit;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,10 +35,14 @@
|
|||
#ifndef TLS_PORT
|
||||
#define TLS_PORT 11111
|
||||
#endif
|
||||
|
||||
/* enable for testing ECC key/cert */
|
||||
#if 0
|
||||
#define USE_TLS_ECC
|
||||
#ifndef TLS_CIPHER_SUITE
|
||||
#define TLS_CIPHER_SUITE "ECDHE-RSA-AES128-SHA256"
|
||||
#endif
|
||||
#endif
|
||||
/* enable for testing ECC key/cert when RSA is enabled */
|
||||
#if 0
|
||||
#define TLS_USE_ECC
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
@ -53,9 +57,15 @@
|
|||
* This example server listens on port 11111 by default.
|
||||
*
|
||||
* You can validate using the wolfSSL example client this like:
|
||||
* ./examples/client/client -h 192.168.0.10 -p 11111 -d -g
|
||||
* ./examples/client/client -h localhost -p 11111 -g -d
|
||||
*
|
||||
* To validate server certificate use the following:
|
||||
* ./examples/client/client -h localhost -p 11111 -g -A ./certs/tpm-ca-rsa-cert.pem
|
||||
* or
|
||||
* ./examples/client/client -h localhost -p 11111 -g -A ./certs/tpm-ca-ecc-cert.pem
|
||||
*
|
||||
* Or using your browser: https://localhost:11111
|
||||
*
|
||||
* Or using your browser: https://192.168.0.10:11111
|
||||
* With browsers you will get certificate warnings until you load the test CA's
|
||||
* ./certs/ca-rsa-cert.pem and ./certs/ca-ecc-cert.pem into your OS key store.
|
||||
* With most browsers you can bypass the certificate warning.
|
||||
|
|
@ -251,10 +261,6 @@ static void CloseAndCleanupSocket(SockIoCbCtx* sockIoCtx)
|
|||
|
||||
static int myVerify(int preverify, WOLFSSL_X509_STORE_CTX* store)
|
||||
{
|
||||
char buffer[WOLFSSL_MAX_ERROR_SZ];
|
||||
|
||||
(void)preverify;
|
||||
|
||||
/* Verify Callback Arguments:
|
||||
* preverify: 1=Verify Okay, 0=Failure
|
||||
* store->current_cert: Current WOLFSSL_X509 object (only with OPENSSL_EXTRA)
|
||||
|
|
@ -267,19 +273,25 @@ static int myVerify(int preverify, WOLFSSL_X509_STORE_CTX* store)
|
|||
* store->ex_data: The WOLFSSL object pointer
|
||||
*/
|
||||
|
||||
printf("In verification callback, error = %d, %s\n", store->error,
|
||||
wolfSSL_ERR_error_string(store->error, buffer));
|
||||
|
||||
printf("In verification callback, error = %d, %s\n",
|
||||
store->error, wolfSSL_ERR_reason_error_string(store->error));
|
||||
printf("\tPeer certs: %d\n", store->totalCerts);
|
||||
printf("\tSubject's domain name at %d is %s\n",
|
||||
store->error_depth, store->domain);
|
||||
|
||||
printf("\tSubject's domain name at %d is %s\n", store->error_depth, store->domain);
|
||||
(void)preverify;
|
||||
|
||||
printf("\tAllowing to continue anyway (shouldn't do this)\n");
|
||||
/* If error indicate we are overriding it for testing purposes */
|
||||
if (store->error != 0) {
|
||||
printf("\tAllowing failed certificate check, testing only "
|
||||
"(shouldn't do this in production)\n");
|
||||
}
|
||||
|
||||
/* A non-zero return code indicates failure override */
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Function checks key to see if its the "dummy" key */
|
||||
static int myTpmCheckKey(wc_CryptoInfo* info, TpmCryptoDevCtx* ctx)
|
||||
{
|
||||
int ret = 0;
|
||||
|
|
@ -424,7 +436,7 @@ int TPM2_TLS_Server(void* userCtx)
|
|||
XMEMSET(&wolfEccKey, 0, sizeof(wolfEccKey));
|
||||
tpmCtx.eccKey = &eccKey;
|
||||
#endif
|
||||
tpmCtx.checkKeyCb = myTpmCheckKey;
|
||||
tpmCtx.checkKeyCb = myTpmCheckKey; /* detects if using "dummy" key */
|
||||
rc = wolfTPM2_SetCryptoDevCb(&dev, wolfTPM2_CryptoDevCb, &tpmCtx, &tpmDevId);
|
||||
if (rc != 0) goto exit;
|
||||
|
||||
|
|
@ -532,10 +544,11 @@ int TPM2_TLS_Server(void* userCtx)
|
|||
wolfSSL_CTX_SetIOSend(ctx, SockIOSend);
|
||||
|
||||
/* Server certificate validation */
|
||||
#if 1
|
||||
#if 0
|
||||
/* skip server cert validation for this test */
|
||||
wolfSSL_CTX_set_verify(ctx, WOLFSSL_VERIFY_NONE, myVerify);
|
||||
#else
|
||||
wolfSSL_CTX_set_verify(ctx, WOLFSSL_VERIFY_PEER, myVerify);
|
||||
#ifdef NO_FILESYSTEM
|
||||
/* example loading from buffer */
|
||||
#if 0
|
||||
|
|
@ -545,12 +558,30 @@ int TPM2_TLS_Server(void* userCtx)
|
|||
}
|
||||
#endif
|
||||
#else
|
||||
/* Load CA Certificate */
|
||||
if (wolfSSL_CTX_load_verify_locations(ctx, "./certs/wolfssl-website-ca.pem",
|
||||
/* Load CA Certificates */
|
||||
#if !defined(NO_RSA) && !defined(TLS_USE_ECC)
|
||||
if (wolfSSL_CTX_load_verify_locations(ctx, "./certs/ca-rsa-cert.pem",
|
||||
0) != WOLFSSL_SUCCESS) {
|
||||
printf("Error loading wolfSSL website certs\n");
|
||||
printf("Error loading ca-rsa-cert.pem cert\n");
|
||||
goto exit;
|
||||
}
|
||||
if (wolfSSL_CTX_load_verify_locations(ctx, "./certs/wolf-ca-rsa-cert.pem",
|
||||
0) != WOLFSSL_SUCCESS) {
|
||||
printf("Error loading wolf-ca-rsa-cert.pem cert\n");
|
||||
goto exit;
|
||||
}
|
||||
#elif defined(HAVE_ECC)
|
||||
if (wolfSSL_CTX_load_verify_locations(ctx, "./certs/ca-ecc-cert.pem",
|
||||
0) != WOLFSSL_SUCCESS) {
|
||||
printf("Error loading ca-ecc-cert.pem cert\n");
|
||||
goto exit;
|
||||
}
|
||||
if (wolfSSL_CTX_load_verify_locations(ctx, "./certs/wolf-ca-ecc-cert.pem",
|
||||
0) != WOLFSSL_SUCCESS) {
|
||||
printf("Error loading wolf-ca-ecc-cert.pem cert\n");
|
||||
goto exit;
|
||||
}
|
||||
#endif
|
||||
#endif /* !NO_FILESYSTEM */
|
||||
#endif
|
||||
|
||||
|
|
@ -564,7 +595,7 @@ int TPM2_TLS_Server(void* userCtx)
|
|||
#endif
|
||||
#else
|
||||
/* Server certificate */
|
||||
#if !defined(NO_RSA) && !defined(USE_TLS_ECC)
|
||||
#if !defined(NO_RSA) && !defined(TLS_USE_ECC)
|
||||
printf("Loading RSA certificate and dummy key\n");
|
||||
|
||||
if ((rc = wolfSSL_CTX_use_certificate_file(ctx, "./certs/server-rsa-cert.pem",
|
||||
|
|
|
|||
|
|
@ -25,96 +25,4 @@
|
|||
|
||||
int TPM2_TLS_Server(void* userCtx);
|
||||
|
||||
|
||||
/* from wolfssl/certs/ecc-key.der */
|
||||
static const unsigned char DUMMY_ECC_KEY[] = {
|
||||
0x30, 0x77, 0x02, 0x01, 0x01, 0x04, 0x20, 0x45, 0xB6, 0x69, 0x02, 0x73, 0x9C, 0x6C, 0x85, 0xA1,
|
||||
0x38, 0x5B, 0x72, 0xE8, 0xE8, 0xC7, 0xAC, 0xC4, 0x03, 0x8D, 0x53, 0x35, 0x04, 0xFA, 0x6C, 0x28,
|
||||
0xDC, 0x34, 0x8D, 0xE1, 0xA8, 0x09, 0x8C, 0xA0, 0x0A, 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D,
|
||||
0x03, 0x01, 0x07, 0xA1, 0x44, 0x03, 0x42, 0x00, 0x04, 0xBB, 0x33, 0xAC, 0x4C, 0x27, 0x50, 0x4A,
|
||||
0xC6, 0x4A, 0xA5, 0x04, 0xC3, 0x3C, 0xDE, 0x9F, 0x36, 0xDB, 0x72, 0x2D, 0xCE, 0x94, 0xEA, 0x2B,
|
||||
0xFA, 0xCB, 0x20, 0x09, 0x39, 0x2C, 0x16, 0xE8, 0x61, 0x02, 0xE9, 0xAF, 0x4D, 0xD3, 0x02, 0x93,
|
||||
0x9A, 0x31, 0x5B, 0x97, 0x92, 0x21, 0x7F, 0xF0, 0xCF, 0x18, 0xDA, 0x91, 0x11, 0x02, 0x34, 0x86,
|
||||
0xE8, 0x20, 0x58, 0x33, 0x0B, 0x80, 0x34, 0x89, 0xD8
|
||||
};
|
||||
|
||||
/* from wolfssl/certs/server-key.der */
|
||||
static const unsigned char DUMMY_RSA_KEY[] = {
|
||||
0x30, 0x82, 0x04, 0xA5, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00, 0xC0, 0x95, 0x08, 0xE1,
|
||||
0x57, 0x41, 0xF2, 0x71, 0x6D, 0xB7, 0xD2, 0x45, 0x41, 0x27, 0x01, 0x65, 0xC6, 0x45, 0xAE, 0xF2,
|
||||
0xBC, 0x24, 0x30, 0xB8, 0x95, 0xCE, 0x2F, 0x4E, 0xD6, 0xF6, 0x1C, 0x88, 0xBC, 0x7C, 0x9F, 0xFB,
|
||||
0xA8, 0x67, 0x7F, 0xFE, 0x5C, 0x9C, 0x51, 0x75, 0xF7, 0x8A, 0xCA, 0x07, 0xE7, 0x35, 0x2F, 0x8F,
|
||||
0xE1, 0xBD, 0x7B, 0xC0, 0x2F, 0x7C, 0xAB, 0x64, 0xA8, 0x17, 0xFC, 0xCA, 0x5D, 0x7B, 0xBA, 0xE0,
|
||||
0x21, 0xE5, 0x72, 0x2E, 0x6F, 0x2E, 0x86, 0xD8, 0x95, 0x73, 0xDA, 0xAC, 0x1B, 0x53, 0xB9, 0x5F,
|
||||
0x3F, 0xD7, 0x19, 0x0D, 0x25, 0x4F, 0xE1, 0x63, 0x63, 0x51, 0x8B, 0x0B, 0x64, 0x3F, 0xAD, 0x43,
|
||||
0xB8, 0xA5, 0x1C, 0x5C, 0x34, 0xB3, 0xAE, 0x00, 0xA0, 0x63, 0xC5, 0xF6, 0x7F, 0x0B, 0x59, 0x68,
|
||||
0x78, 0x73, 0xA6, 0x8C, 0x18, 0xA9, 0x02, 0x6D, 0xAF, 0xC3, 0x19, 0x01, 0x2E, 0xB8, 0x10, 0xE3,
|
||||
0xC6, 0xCC, 0x40, 0xB4, 0x69, 0xA3, 0x46, 0x33, 0x69, 0x87, 0x6E, 0xC4, 0xBB, 0x17, 0xA6, 0xF3,
|
||||
0xE8, 0xDD, 0xAD, 0x73, 0xBC, 0x7B, 0x2F, 0x21, 0xB5, 0xFD, 0x66, 0x51, 0x0C, 0xBD, 0x54, 0xB3,
|
||||
0xE1, 0x6D, 0x5F, 0x1C, 0xBC, 0x23, 0x73, 0xD1, 0x09, 0x03, 0x89, 0x14, 0xD2, 0x10, 0xB9, 0x64,
|
||||
0xC3, 0x2A, 0xD0, 0xA1, 0x96, 0x4A, 0xBC, 0xE1, 0xD4, 0x1A, 0x5B, 0xC7, 0xA0, 0xC0, 0xC1, 0x63,
|
||||
0x78, 0x0F, 0x44, 0x37, 0x30, 0x32, 0x96, 0x80, 0x32, 0x23, 0x95, 0xA1, 0x77, 0xBA, 0x13, 0xD2,
|
||||
0x97, 0x73, 0xE2, 0x5D, 0x25, 0xC9, 0x6A, 0x0D, 0xC3, 0x39, 0x60, 0xA4, 0xB4, 0xB0, 0x69, 0x42,
|
||||
0x42, 0x09, 0xE9, 0xD8, 0x08, 0xBC, 0x33, 0x20, 0xB3, 0x58, 0x22, 0xA7, 0xAA, 0xEB, 0xC4, 0xE1,
|
||||
0xE6, 0x61, 0x83, 0xC5, 0xD2, 0x96, 0xDF, 0xD9, 0xD0, 0x4F, 0xAD, 0xD7, 0x02, 0x03, 0x01, 0x00,
|
||||
0x01, 0x02, 0x82, 0x01, 0x01, 0x00, 0x9A, 0xD0, 0x34, 0x0F, 0x52, 0x62, 0x05, 0x50, 0x01, 0xEF,
|
||||
0x9F, 0xED, 0x64, 0x6E, 0xC2, 0xC4, 0xDA, 0x1A, 0xF2, 0x84, 0xD7, 0x92, 0x10, 0x48, 0x92, 0xC4,
|
||||
0xE9, 0x6A, 0xEB, 0x8B, 0x75, 0x6C, 0xC6, 0x79, 0x38, 0xF2, 0xC9, 0x72, 0x4A, 0x86, 0x64, 0x54,
|
||||
0x95, 0x77, 0xCB, 0xC3, 0x9A, 0x9D, 0xB7, 0xD4, 0x1D, 0xA4, 0x00, 0xC8, 0x9E, 0x4E, 0xE4, 0xDD,
|
||||
0xC7, 0xBA, 0x67, 0x16, 0xC1, 0x74, 0xBC, 0xA9, 0xD6, 0x94, 0x8F, 0x2B, 0x30, 0x1A, 0xFB, 0xED,
|
||||
0xDF, 0x21, 0x05, 0x23, 0xD9, 0x4A, 0x39, 0xBD, 0x98, 0x6B, 0x65, 0x9A, 0xB8, 0xDC, 0xC4, 0x7D,
|
||||
0xEE, 0xA6, 0x43, 0x15, 0x2E, 0x3D, 0xBE, 0x1D, 0x22, 0x60, 0x2A, 0x73, 0x30, 0xD5, 0x3E, 0xD8,
|
||||
0xA2, 0xAC, 0x86, 0x43, 0x2E, 0xC4, 0xF5, 0x64, 0x5E, 0x3F, 0x89, 0x75, 0x0F, 0x11, 0xD8, 0x51,
|
||||
0x25, 0x4E, 0x9F, 0xD8, 0xAA, 0xA3, 0xCE, 0x60, 0xB3, 0xE2, 0x8A, 0xD9, 0x7E, 0x1B, 0xF0, 0x64,
|
||||
0xCA, 0x9A, 0x5B, 0x05, 0x0B, 0x5B, 0xAA, 0xCB, 0xE5, 0xE3, 0x3F, 0x6E, 0x32, 0x22, 0x05, 0xF3,
|
||||
0xD0, 0xFA, 0xEF, 0x74, 0x52, 0x81, 0xE2, 0x5F, 0x74, 0xD3, 0xBD, 0xFF, 0x31, 0x83, 0x45, 0x75,
|
||||
0xFA, 0x63, 0x7A, 0x97, 0x2E, 0xD6, 0xB6, 0x19, 0xC6, 0x92, 0x26, 0xE4, 0x28, 0x06, 0x50, 0x50,
|
||||
0x0E, 0x78, 0x2E, 0xA9, 0x78, 0x0D, 0x14, 0x97, 0xB4, 0x12, 0xD8, 0x31, 0x40, 0xAB, 0xA1, 0x01,
|
||||
0x41, 0xC2, 0x30, 0xF8, 0x07, 0x5F, 0x16, 0xE4, 0x61, 0x77, 0xD2, 0x60, 0xF2, 0x9F, 0x8D, 0xE8,
|
||||
0xF4, 0xBA, 0xEB, 0x63, 0xDE, 0x2A, 0x97, 0x81, 0xEF, 0x4C, 0x6C, 0xE6, 0x55, 0x34, 0x51, 0x2B,
|
||||
0x28, 0x34, 0xF4, 0x53, 0x1C, 0xC4, 0x58, 0x0A, 0x3F, 0xBB, 0xAF, 0xB5, 0xF7, 0x4A, 0x85, 0x43,
|
||||
0x2D, 0x3C, 0xF1, 0x58, 0x58, 0x81, 0x02, 0x81, 0x81, 0x00, 0xF2, 0x2C, 0x54, 0x76, 0x39, 0x23,
|
||||
0x63, 0xC9, 0x10, 0x32, 0xB7, 0x93, 0xAD, 0xAF, 0xBE, 0x19, 0x75, 0x96, 0x81, 0x64, 0xE6, 0xB5,
|
||||
0xB8, 0x89, 0x42, 0x41, 0xD1, 0x6D, 0xD0, 0x1C, 0x1B, 0xF8, 0x1B, 0xAC, 0x69, 0xCB, 0x36, 0x3C,
|
||||
0x64, 0x7D, 0xDC, 0xF4, 0x19, 0xB8, 0xC3, 0x60, 0xB1, 0x57, 0x48, 0x5F, 0x52, 0x4F, 0x59, 0x3A,
|
||||
0x55, 0x7F, 0x32, 0xC0, 0x19, 0x43, 0x50, 0x3F, 0xAE, 0xCE, 0x6F, 0x17, 0xF3, 0x0E, 0x9F, 0x40,
|
||||
0xCA, 0x4E, 0xAD, 0x15, 0x3B, 0xC9, 0x79, 0xE9, 0xC0, 0x59, 0x38, 0x73, 0x70, 0x9C, 0x0A, 0x7C,
|
||||
0xC9, 0x3A, 0x48, 0x32, 0xA7, 0xD8, 0x49, 0x75, 0x0A, 0x85, 0xC2, 0xC2, 0xFD, 0x15, 0x73, 0xDA,
|
||||
0x99, 0x09, 0x2A, 0x69, 0x9A, 0x9F, 0x0A, 0x71, 0xBF, 0xB0, 0x04, 0xA6, 0x8C, 0x7A, 0x5A, 0x6F,
|
||||
0x48, 0x5A, 0x54, 0x3B, 0xC6, 0xB1, 0x53, 0x17, 0xDF, 0xE7, 0x02, 0x81, 0x81, 0x00, 0xCB, 0x93,
|
||||
0xDE, 0x77, 0x15, 0x5D, 0xB7, 0x5C, 0x5C, 0x7C, 0xD8, 0x90, 0xA9, 0x98, 0x2D, 0xD6, 0x69, 0x0E,
|
||||
0x63, 0xB3, 0xA3, 0xDC, 0xA6, 0xCC, 0x8B, 0x6A, 0xA4, 0xA2, 0x12, 0x8C, 0x8E, 0x7B, 0x48, 0x2C,
|
||||
0xB2, 0x4B, 0x37, 0xDC, 0x06, 0x18, 0x7D, 0xEA, 0xFE, 0x76, 0xA1, 0xD4, 0xA1, 0xE9, 0x3F, 0x0D,
|
||||
0xCD, 0x1B, 0x5F, 0xAF, 0x5F, 0x9E, 0x96, 0x5B, 0x5B, 0x0F, 0xA1, 0x7C, 0xAF, 0xB3, 0x9B, 0x90,
|
||||
0xDB, 0x57, 0x73, 0x3A, 0xED, 0xB0, 0x23, 0x44, 0xAE, 0x41, 0x4F, 0x1F, 0x07, 0x42, 0x13, 0x23,
|
||||
0x4C, 0xCB, 0xFA, 0xF4, 0x14, 0xA4, 0xD5, 0xF7, 0x9E, 0x36, 0x7C, 0x5B, 0x9F, 0xA8, 0x3C, 0xC1,
|
||||
0x85, 0x5F, 0x74, 0xD2, 0x39, 0x2D, 0xFF, 0xD0, 0x84, 0xDF, 0xFB, 0xB3, 0x20, 0x7A, 0x2E, 0x9B,
|
||||
0x17, 0xAE, 0xE6, 0xBA, 0x0B, 0xAE, 0x5F, 0x53, 0xA4, 0x52, 0xED, 0x1B, 0xC4, 0x91, 0x02, 0x81,
|
||||
0x81, 0x00, 0xEC, 0x98, 0xDA, 0xBB, 0xD5, 0xFE, 0xF9, 0x52, 0x4A, 0x7D, 0x02, 0x55, 0x49, 0x6F,
|
||||
0x55, 0x6E, 0x52, 0x2F, 0x84, 0xA3, 0x2B, 0xB3, 0x86, 0x62, 0xB3, 0x54, 0xD2, 0x63, 0x52, 0xDA,
|
||||
0xE3, 0x88, 0x76, 0xA0, 0xEF, 0x8B, 0x15, 0xA5, 0xD3, 0x18, 0x14, 0x72, 0x77, 0x5E, 0xC7, 0xA3,
|
||||
0x04, 0x1F, 0x9E, 0x19, 0x62, 0xB5, 0x1B, 0x1B, 0x9E, 0xC3, 0xF2, 0xB5, 0x32, 0xF9, 0x4C, 0xC1,
|
||||
0xAA, 0xEB, 0x0C, 0x26, 0x7D, 0xD4, 0x5F, 0x4A, 0x51, 0x5C, 0xA4, 0x45, 0x06, 0x70, 0x44, 0xA7,
|
||||
0x56, 0xC0, 0xD4, 0x22, 0x14, 0x76, 0x9E, 0xD8, 0x63, 0x50, 0x89, 0x90, 0xD3, 0xE2, 0xBF, 0x81,
|
||||
0x95, 0x92, 0x31, 0x41, 0x87, 0x39, 0x1A, 0x43, 0x0B, 0x18, 0xA5, 0x53, 0x1F, 0x39, 0x1A, 0x5F,
|
||||
0x1F, 0x43, 0xBC, 0x87, 0x6A, 0xDF, 0x6E, 0xD3, 0x22, 0x00, 0xFE, 0x22, 0x98, 0x70, 0x4E, 0x1A,
|
||||
0x19, 0x29, 0x02, 0x81, 0x81, 0x00, 0x8A, 0x41, 0x56, 0x28, 0x51, 0x9E, 0x5F, 0xD4, 0x9E, 0x0B,
|
||||
0x3B, 0x98, 0xA3, 0x54, 0xF2, 0x6C, 0x56, 0xD4, 0xAA, 0xE9, 0x69, 0x33, 0x85, 0x24, 0x0C, 0xDA,
|
||||
0xD4, 0x0C, 0x2D, 0xC4, 0xBF, 0x4F, 0x02, 0x69, 0x38, 0x7C, 0xD4, 0xE6, 0xDC, 0x4C, 0xED, 0xD7,
|
||||
0x16, 0x11, 0xC3, 0x3E, 0x00, 0xE7, 0xC3, 0x26, 0xC0, 0x51, 0x02, 0xDE, 0xBB, 0x75, 0x9C, 0x6F,
|
||||
0x56, 0x9C, 0x7A, 0xF3, 0x8E, 0xEF, 0xCF, 0x8A, 0xC5, 0x2B, 0xD2, 0xDA, 0x06, 0x6A, 0x44, 0xC9,
|
||||
0x73, 0xFE, 0x6E, 0x99, 0x87, 0xF8, 0x5B, 0xBE, 0xF1, 0x7C, 0xE6, 0x65, 0xB5, 0x4F, 0x6C, 0xF0,
|
||||
0xC9, 0xC5, 0xFF, 0x16, 0xCA, 0x8B, 0x1B, 0x17, 0xE2, 0x58, 0x3D, 0xA2, 0x37, 0xAB, 0x01, 0xBC,
|
||||
0xBF, 0x40, 0xCE, 0x53, 0x8C, 0x8E, 0xED, 0xEF, 0xEE, 0x59, 0x9D, 0xE0, 0x63, 0xE6, 0x7C, 0x5E,
|
||||
0xF5, 0x8E, 0x4B, 0xF1, 0x3B, 0xC1, 0x02, 0x81, 0x80, 0x4D, 0x45, 0xF9, 0x40, 0x8C, 0xC5, 0x5B,
|
||||
0xF4, 0x2A, 0x1A, 0x8A, 0xB4, 0xF2, 0x1C, 0xAC, 0x6B, 0xE9, 0x0C, 0x56, 0x36, 0xB7, 0x4E, 0x72,
|
||||
0x96, 0xD5, 0xE5, 0x8A, 0xD2, 0xE2, 0xFF, 0xF1, 0xF1, 0x18, 0x13, 0x3D, 0x86, 0x09, 0xB8, 0xD8,
|
||||
0x76, 0xA7, 0xC9, 0x1C, 0x71, 0x52, 0x94, 0x30, 0x43, 0xE0, 0xF1, 0x78, 0x74, 0xFD, 0x61, 0x1B,
|
||||
0x4C, 0x09, 0xCC, 0xE6, 0x68, 0x2A, 0x71, 0xAD, 0x1C, 0xDF, 0x43, 0xBC, 0x56, 0xDB, 0xA5, 0xA4,
|
||||
0xBE, 0x35, 0x70, 0xA4, 0x5E, 0xCF, 0x4F, 0xFC, 0x00, 0x55, 0x99, 0x3A, 0x3D, 0x23, 0xCF, 0x67,
|
||||
0x5A, 0xF5, 0x22, 0xF8, 0xB5, 0x29, 0xD0, 0x44, 0x11, 0xEB, 0x35, 0x2E, 0x46, 0xBE, 0xFD, 0x8E,
|
||||
0x18, 0xB2, 0x5F, 0xA8, 0xBF, 0x19, 0x32, 0xA1, 0xF5, 0xDC, 0x03, 0xE6, 0x7C, 0x9A, 0x1F, 0x0C,
|
||||
0x7C, 0xA9, 0xB0, 0x0E, 0x21, 0x37, 0x3B, 0xF1, 0xB0
|
||||
};
|
||||
|
||||
#endif /* _TPM_TLS_SERVER_H_ */
|
||||
|
|
|
|||
|
|
@ -299,4 +299,115 @@ static const byte kEccTestSigRS[] = {
|
|||
};
|
||||
|
||||
|
||||
|
||||
/* from certs/dummy-ecc.pem (as DER) */
|
||||
static const unsigned char DUMMY_ECC_KEY[] = {
|
||||
0x30, 0x77, 0x02, 0x01, 0x01, 0x04, 0x20, 0x05, 0x0F, 0xEA, 0xB6, 0x2C, 0x7C,
|
||||
0xD3, 0x3C, 0x66, 0x3D, 0x6B, 0x44, 0xD5, 0x8A, 0xD4, 0x1C, 0xF6, 0x2A, 0x35,
|
||||
0x49, 0xB2, 0x36, 0x7D, 0xEC, 0xD4, 0xB3, 0x9A, 0x2B, 0x4F, 0x71, 0xC8, 0xD3,
|
||||
0xA0, 0x0A, 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07, 0xA1,
|
||||
0x44, 0x03, 0x42, 0x00, 0x04, 0x43, 0x98, 0xF7, 0x33, 0x77, 0xB4, 0x55, 0x02,
|
||||
0xF1, 0xF3, 0x79, 0x97, 0x67, 0xED, 0xB5, 0x3A, 0x7A, 0xE1, 0x7C, 0xC6, 0xA8,
|
||||
0x23, 0x8B, 0x3A, 0x68, 0x42, 0xDD, 0x68, 0x4F, 0x48, 0x6F, 0x2D, 0x9A, 0x7C,
|
||||
0x47, 0x20, 0x1F, 0x13, 0x69, 0x71, 0x05, 0x42, 0x5B, 0x9F, 0x23, 0x7D, 0xE0,
|
||||
0xA6, 0x5D, 0xD4, 0x11, 0x44, 0xB1, 0x91, 0x66, 0x50, 0xC0, 0x2C, 0x8C, 0x71,
|
||||
0x35, 0x0E, 0x28, 0xB4
|
||||
};
|
||||
|
||||
/* from certs/dummy-rsa.pem (as DER) */
|
||||
static const unsigned char DUMMY_RSA_KEY[] = {
|
||||
0x30, 0x82, 0x04, 0xA3, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00, 0xCF,
|
||||
0xDD, 0xB2, 0x17, 0x49, 0xEB, 0xBF, 0xFB, 0xC5, 0x19, 0x13, 0x63, 0x86, 0x49,
|
||||
0xBC, 0xFE, 0x8E, 0xED, 0x21, 0x6E, 0x53, 0x18, 0x9C, 0x41, 0xD5, 0xEC, 0x12,
|
||||
0x31, 0xF0, 0xF9, 0x90, 0x08, 0x15, 0x68, 0x2F, 0x00, 0x9C, 0xAC, 0x36, 0x28,
|
||||
0xF6, 0xD8, 0x50, 0xA0, 0xD4, 0x7C, 0xDF, 0xE7, 0x0F, 0xE1, 0x36, 0xD1, 0xDD,
|
||||
0xC0, 0x2B, 0xF0, 0x3D, 0xC9, 0xF0, 0x5B, 0xE4, 0x76, 0x48, 0x91, 0xF0, 0x92,
|
||||
0x29, 0x82, 0x75, 0x7F, 0x0B, 0x41, 0x39, 0x77, 0x52, 0xCD, 0x1F, 0x30, 0xA3,
|
||||
0xC3, 0x79, 0x92, 0xBD, 0x0A, 0x7F, 0x16, 0xB2, 0x06, 0xFD, 0x49, 0xC5, 0x4D,
|
||||
0x34, 0x26, 0xDB, 0x49, 0x06, 0xDB, 0x49, 0x63, 0xB6, 0xE5, 0xA4, 0xEC, 0xC0,
|
||||
0x6D, 0x24, 0xF1, 0x82, 0x0F, 0x83, 0x1B, 0xB1, 0x0D, 0xA3, 0x8B, 0x6A, 0x39,
|
||||
0x39, 0xB6, 0xB3, 0xA3, 0xE1, 0x77, 0x69, 0x8C, 0xC7, 0x83, 0xE1, 0xBE, 0x9E,
|
||||
0xF9, 0xB7, 0xDB, 0xDF, 0xF8, 0x98, 0x7C, 0x9D, 0xC8, 0x72, 0x78, 0xBF, 0x13,
|
||||
0x62, 0x27, 0xA1, 0xBF, 0x4B, 0x2B, 0x04, 0x18, 0xCD, 0x2C, 0x10, 0x7E, 0xA5,
|
||||
0x33, 0x08, 0xD4, 0x49, 0xF1, 0xEC, 0x99, 0x6F, 0x2E, 0x0B, 0xB4, 0xD3, 0xB3,
|
||||
0xC2, 0x20, 0x02, 0xE9, 0x3A, 0xA1, 0xB3, 0x81, 0x9B, 0x0C, 0x02, 0xB0, 0xDE,
|
||||
0x9E, 0xEF, 0x0A, 0x47, 0x6E, 0xFA, 0xDB, 0x4D, 0x13, 0x1E, 0x1F, 0xD2, 0x7B,
|
||||
0xC6, 0x48, 0xE8, 0x27, 0xDE, 0xBC, 0x8D, 0x4C, 0x60, 0x5A, 0x71, 0xB5, 0xC3,
|
||||
0x7F, 0xFC, 0x7C, 0x28, 0xC1, 0x99, 0xF2, 0x7A, 0x3B, 0xCD, 0x6A, 0x76, 0xFE,
|
||||
0xA8, 0x9B, 0xDD, 0x03, 0x1E, 0xEB, 0xB4, 0x9D, 0x70, 0x5C, 0x7A, 0x1F, 0xB6,
|
||||
0x12, 0xEC, 0xCD, 0xAC, 0x6A, 0xCD, 0x2C, 0x25, 0x53, 0xEF, 0x34, 0xD5, 0xC5,
|
||||
0x97, 0x14, 0xD4, 0xB2, 0x86, 0x03, 0x5F, 0x89, 0x02, 0x03, 0x01, 0x00, 0x01,
|
||||
0x02, 0x82, 0x01, 0x00, 0x5D, 0x9E, 0xBF, 0x10, 0x48, 0x25, 0xDB, 0x00, 0xFD,
|
||||
0x43, 0x8E, 0xFC, 0xFB, 0x45, 0x88, 0xCE, 0xA9, 0xF6, 0xD9, 0x60, 0xC4, 0x22,
|
||||
0x48, 0x76, 0x4A, 0x70, 0x19, 0xBD, 0xCE, 0x87, 0xC8, 0x3C, 0x2B, 0xD0, 0x11,
|
||||
0xA3, 0x57, 0xED, 0x24, 0x33, 0x8D, 0x01, 0xDE, 0x46, 0xA1, 0x8D, 0x60, 0x96,
|
||||
0xC4, 0x0B, 0x2E, 0x52, 0x95, 0x6A, 0x71, 0x1F, 0xB1, 0xE4, 0x9A, 0xD1, 0xF8,
|
||||
0x72, 0xE1, 0xBA, 0x81, 0x3C, 0x83, 0x5F, 0x93, 0xA5, 0xD5, 0x9E, 0xD9, 0xD0,
|
||||
0x09, 0x46, 0x03, 0x6F, 0x37, 0xC2, 0xD9, 0xA5, 0xA2, 0x68, 0xF0, 0xD6, 0x7A,
|
||||
0xF6, 0x34, 0xEC, 0x1D, 0xE5, 0xE8, 0xC0, 0x3B, 0x71, 0x87, 0x9A, 0x0A, 0x52,
|
||||
0xD3, 0xD4, 0x58, 0x54, 0x9D, 0x52, 0x4B, 0x1A, 0x4E, 0xF6, 0xC7, 0x99, 0x18,
|
||||
0x44, 0x49, 0x4D, 0x88, 0x59, 0x1F, 0xCA, 0x4E, 0xDC, 0x57, 0xB7, 0x1D, 0x9D,
|
||||
0xDF, 0x59, 0x91, 0xD9, 0x2E, 0xE0, 0x54, 0xAA, 0x4E, 0x8F, 0x92, 0x82, 0x85,
|
||||
0x70, 0xF9, 0x93, 0x90, 0x3A, 0x30, 0xCD, 0xB3, 0x73, 0x81, 0x93, 0xE7, 0xF9,
|
||||
0x1F, 0xF6, 0xA9, 0xA9, 0xD4, 0xAE, 0x89, 0x0E, 0x38, 0x11, 0x61, 0xF7, 0xF7,
|
||||
0xDC, 0x9B, 0x99, 0x4B, 0xFE, 0xC0, 0x71, 0x78, 0x53, 0x18, 0x0F, 0x23, 0xA9,
|
||||
0x11, 0xA0, 0xAA, 0x57, 0xEE, 0x39, 0xAA, 0xEA, 0x2A, 0x7A, 0x8D, 0x12, 0x69,
|
||||
0x2C, 0x82, 0x4D, 0xA0, 0xE5, 0x1C, 0xB3, 0x69, 0x9D, 0xA1, 0x30, 0xA3, 0x40,
|
||||
0xFA, 0x86, 0x40, 0xD3, 0x8B, 0xF9, 0xAF, 0x98, 0x7D, 0x17, 0x07, 0xA3, 0x29,
|
||||
0xE2, 0x57, 0xEF, 0x47, 0xCF, 0x81, 0x22, 0x4D, 0x47, 0x63, 0xA4, 0x2F, 0x1A,
|
||||
0x8F, 0xC3, 0x26, 0x1F, 0xF6, 0xC5, 0x81, 0xFF, 0x14, 0xA9, 0x87, 0x56, 0x18,
|
||||
0x8A, 0x18, 0xFD, 0x37, 0xC3, 0x4B, 0x8E, 0xE0, 0x6B, 0x2C, 0x07, 0x4B, 0x05,
|
||||
0x02, 0x81, 0x81, 0x00, 0xED, 0x51, 0x06, 0x91, 0xB8, 0x94, 0x5E, 0x17, 0x9B,
|
||||
0x22, 0x25, 0xEF, 0x23, 0x76, 0x61, 0x26, 0xFA, 0xAC, 0xEE, 0xC1, 0x99, 0x8E,
|
||||
0x55, 0x38, 0x85, 0xD2, 0x15, 0x06, 0x6E, 0xBB, 0x45, 0xBB, 0xFE, 0x5F, 0xF7,
|
||||
0xD2, 0xA4, 0x41, 0x15, 0x24, 0x67, 0x8E, 0xA2, 0x6B, 0xBA, 0xAA, 0x28, 0x84,
|
||||
0x22, 0x63, 0xEE, 0xA8, 0xA0, 0xD0, 0xEA, 0x47, 0x8C, 0xAC, 0x4E, 0x98, 0x18,
|
||||
0x8A, 0xF2, 0x19, 0x76, 0x50, 0x9D, 0xFE, 0xD1, 0x59, 0xC3, 0xC1, 0x23, 0x3B,
|
||||
0x31, 0x73, 0xC7, 0x71, 0x3E, 0x94, 0xC8, 0x6D, 0x7F, 0xBA, 0x30, 0xF2, 0x4C,
|
||||
0x1A, 0x7E, 0x74, 0x52, 0x78, 0xA0, 0xAB, 0x69, 0x0C, 0x44, 0x59, 0xD0, 0xB0,
|
||||
0xFE, 0x2F, 0xE8, 0xC2, 0x18, 0xE7, 0x24, 0x8B, 0x73, 0xDF, 0x4F, 0x40, 0x92,
|
||||
0x0C, 0x8C, 0x6C, 0x92, 0x27, 0xBC, 0x3F, 0x5B, 0x79, 0x44, 0xC1, 0x32, 0xCC,
|
||||
0xA2, 0xB7, 0x02, 0x81, 0x81, 0x00, 0xE0, 0x3B, 0x1C, 0xC4, 0xC4, 0x69, 0x0D,
|
||||
0x6B, 0x57, 0x19, 0xB7, 0x59, 0x18, 0x92, 0xB2, 0x09, 0x39, 0x66, 0x97, 0xD1,
|
||||
0x18, 0xDE, 0x6B, 0x5F, 0xC5, 0x9B, 0x11, 0x47, 0x1E, 0xEA, 0xE3, 0xAC, 0x36,
|
||||
0x2B, 0x30, 0x99, 0x81, 0x00, 0x3D, 0x39, 0x41, 0x03, 0x90, 0x77, 0xDE, 0x4A,
|
||||
0xE1, 0x48, 0xDF, 0x98, 0x86, 0x03, 0x3B, 0xEA, 0xAF, 0xC8, 0xF6, 0xD7, 0x4F,
|
||||
0xE6, 0xAE, 0x70, 0xF2, 0x3D, 0xBB, 0xF2, 0x63, 0xB9, 0x2D, 0x3C, 0x08, 0xB3,
|
||||
0x10, 0x9E, 0x97, 0x6C, 0x8D, 0x28, 0x34, 0xAE, 0xDA, 0xD9, 0xA1, 0x8E, 0x3A,
|
||||
0x51, 0x7A, 0xA1, 0x14, 0x3F, 0xFB, 0xEA, 0x3B, 0xB4, 0x93, 0xAA, 0x14, 0x7A,
|
||||
0xB4, 0xD7, 0xCA, 0x7B, 0x61, 0xAF, 0xF5, 0x87, 0x1A, 0x64, 0xA9, 0x3E, 0x3C,
|
||||
0x7A, 0xDD, 0x11, 0x7F, 0x01, 0x2D, 0xA6, 0x91, 0xED, 0x3D, 0x28, 0x9C, 0x67,
|
||||
0xC2, 0x5C, 0xCF, 0xBF, 0x02, 0x81, 0x81, 0x00, 0xCE, 0x0C, 0x59, 0xCD, 0xD0,
|
||||
0x1B, 0x52, 0x0E, 0xE0, 0xED, 0x27, 0x4E, 0x98, 0xD5, 0xC1, 0xC8, 0x9C, 0x41,
|
||||
0xE6, 0x13, 0x46, 0x06, 0x24, 0xCC, 0x2C, 0xB4, 0x98, 0xF8, 0xBA, 0xCF, 0xF2,
|
||||
0xDE, 0x25, 0x20, 0xA2, 0x05, 0xCC, 0x03, 0x8E, 0x1D, 0xCB, 0xA4, 0x36, 0x35,
|
||||
0x9F, 0x1E, 0xFA, 0x8A, 0xAF, 0x69, 0x60, 0xE0, 0x1C, 0xB1, 0x07, 0x99, 0x13,
|
||||
0xF4, 0xCF, 0x50, 0x93, 0x8E, 0xA0, 0x61, 0xA7, 0x2E, 0x9B, 0xDF, 0x91, 0x59,
|
||||
0x84, 0xF3, 0x7E, 0x69, 0x78, 0xA8, 0x73, 0xF4, 0x49, 0x47, 0xD9, 0x35, 0xE9,
|
||||
0x7E, 0x79, 0xDD, 0x06, 0x62, 0xC2, 0x84, 0xB0, 0xCE, 0x77, 0x82, 0x1C, 0x75,
|
||||
0x40, 0x2B, 0x53, 0x5D, 0x39, 0x75, 0xD3, 0x7C, 0x23, 0x2F, 0x1D, 0xB5, 0xCE,
|
||||
0xE7, 0x86, 0xE2, 0x23, 0x6C, 0xAD, 0xC7, 0xDE, 0xA6, 0x8D, 0x75, 0xDD, 0x30,
|
||||
0x4F, 0x98, 0x07, 0x49, 0x51, 0xC5, 0x02, 0x81, 0x80, 0x46, 0x19, 0x34, 0xBD,
|
||||
0x2E, 0xC9, 0xC8, 0xB0, 0x2D, 0xE2, 0x94, 0x36, 0xFE, 0x3F, 0x9D, 0xF8, 0xD4,
|
||||
0x41, 0x06, 0x65, 0x0F, 0xE9, 0x38, 0x98, 0x10, 0x26, 0x92, 0x18, 0x31, 0xCA,
|
||||
0x2C, 0xB2, 0xC1, 0x9C, 0x6E, 0xED, 0x0E, 0x2F, 0x0C, 0xF4, 0xC1, 0x26, 0x64,
|
||||
0x1B, 0x95, 0x1A, 0xC3, 0xA3, 0x0C, 0x83, 0x9A, 0x21, 0x98, 0xB1, 0x9D, 0x92,
|
||||
0xAD, 0xD8, 0x51, 0xDA, 0x43, 0xDE, 0x7B, 0x5C, 0x61, 0x4D, 0x3D, 0x6F, 0xBE,
|
||||
0x7C, 0x6E, 0x1B, 0xCC, 0xAE, 0x47, 0x98, 0x5F, 0xE8, 0x99, 0xCF, 0xB0, 0x0B,
|
||||
0x29, 0x3E, 0x55, 0x6C, 0xF3, 0x71, 0x37, 0xEB, 0x68, 0xCD, 0xA9, 0x2C, 0xA2,
|
||||
0x9D, 0x21, 0x19, 0xDB, 0x3F, 0x3A, 0xC5, 0xA7, 0x9C, 0x62, 0x9D, 0x81, 0xDA,
|
||||
0xC6, 0x2D, 0xF6, 0xAA, 0x52, 0x42, 0x0D, 0xFA, 0x48, 0x53, 0x32, 0x7B, 0x80,
|
||||
0x0B, 0x1A, 0x1A, 0x35, 0xE0, 0xDD, 0xF1, 0x02, 0x81, 0x80, 0x76, 0x46, 0xB9,
|
||||
0x57, 0x91, 0x3F, 0x64, 0x5D, 0x42, 0x37, 0x70, 0x9D, 0x44, 0x38, 0x09, 0x09,
|
||||
0x42, 0x3E, 0x2E, 0x8A, 0x7A, 0xA4, 0x57, 0x4B, 0x81, 0x95, 0x65, 0x47, 0x3C,
|
||||
0xF3, 0x77, 0x54, 0xE3, 0x7D, 0xEC, 0x06, 0xC9, 0x26, 0xAB, 0xDD, 0x66, 0x73,
|
||||
0x54, 0x86, 0x31, 0x26, 0x75, 0x5B, 0x84, 0xAB, 0xD2, 0xA2, 0x6A, 0x9B, 0x6E,
|
||||
0xDD, 0x45, 0xAE, 0x81, 0x49, 0x12, 0x8D, 0x03, 0x1C, 0x1B, 0x6B, 0x5B, 0x37,
|
||||
0xFA, 0xE7, 0x05, 0x9F, 0xBD, 0x66, 0xDD, 0x6C, 0xD7, 0x16, 0x0D, 0xCC, 0x64,
|
||||
0x19, 0xC2, 0xCD, 0xC3, 0xA9, 0xED, 0x70, 0xFA, 0x75, 0xD8, 0x41, 0xF7, 0xC6,
|
||||
0x84, 0xE8, 0x40, 0xF0, 0xE5, 0x93, 0x88, 0xE2, 0x4E, 0x4F, 0xE4, 0x5F, 0xDF,
|
||||
0x53, 0xAB, 0xA7, 0x06, 0xDC, 0x64, 0x7E, 0x51, 0xE8, 0x7E, 0x1C, 0x33, 0x9F,
|
||||
0xBF, 0x5E, 0x58, 0xBC, 0x7D, 0xA3, 0x80, 0x84
|
||||
};
|
||||
|
||||
#endif /* _TPM_TEST_H_ */
|
||||
|
|
|
|||
Loading…
Reference in New Issue