mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04:00
Update CyaSSL to latest version.
This commit is contained in:
parent
5fcd270398
commit
3d007d0b4b
|
@ -135,6 +135,7 @@
|
||||||
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\des3.c" />
|
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\des3.c" />
|
||||||
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\dh.c" />
|
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\dh.c" />
|
||||||
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\dsa.c" />
|
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\dsa.c" />
|
||||||
|
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\error.c" />
|
||||||
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\hc128.c" />
|
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\hc128.c" />
|
||||||
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\hmac.c" />
|
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\hmac.c" />
|
||||||
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\integer.c" />
|
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\integer.c" />
|
||||||
|
@ -149,6 +150,7 @@
|
||||||
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\rsa.c" />
|
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\rsa.c" />
|
||||||
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\sha.c" />
|
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\sha.c" />
|
||||||
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\sha256.c" />
|
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\sha256.c" />
|
||||||
|
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\wc_port.c" />
|
||||||
<ClCompile Include="..\..\Source\CyaSSL\src\internal.c" />
|
<ClCompile Include="..\..\Source\CyaSSL\src\internal.c" />
|
||||||
<ClCompile Include="..\..\Source\CyaSSL\src\io.c" />
|
<ClCompile Include="..\..\Source\CyaSSL\src\io.c" />
|
||||||
<ClCompile Include="..\..\Source\CyaSSL\src\keys.c" />
|
<ClCompile Include="..\..\Source\CyaSSL\src\keys.c" />
|
||||||
|
|
|
@ -135,6 +135,12 @@
|
||||||
<ClCompile Include="SecureTCPClientTask.c">
|
<ClCompile Include="SecureTCPClientTask.c">
|
||||||
<Filter>Demo App Source</Filter>
|
<Filter>Demo App Source</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\wc_port.c">
|
||||||
|
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\error.c">
|
||||||
|
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="FreeRTOSConfig.h">
|
<ClInclude Include="FreeRTOSConfig.h">
|
||||||
|
|
|
@ -1,18 +1,45 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEqjCCA5KgAwIBAgIJAJpBR82hFGKMMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD
|
||||||
|
VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
|
||||||
|
A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
|
||||||
|
dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
|
||||||
|
Fw0xNDA3MTEwMzIwMDhaFw0xNzA0MDYwMzIwMDhaMIGUMQswCQYDVQQGEwJVUzEQ
|
||||||
|
MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3
|
||||||
|
dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns
|
||||||
|
LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI
|
||||||
|
hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D
|
||||||
|
mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx
|
||||||
|
i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J
|
||||||
|
XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc
|
||||||
|
/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI
|
||||||
|
/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB
|
||||||
|
+TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU
|
||||||
|
J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD
|
||||||
|
VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290
|
||||||
|
aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
|
||||||
|
MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAmkFHzaEUYowwDAYD
|
||||||
|
VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAeXgMbXmIkfw6FZz5J2IW8CEf
|
||||||
|
+n0/oqgyHvfyEal0FnRe3BjK8AAq1QMGJjDxR4P9Mm787apPfQxjYDEvfAy/mWaH
|
||||||
|
7ScIhi3EM+iYIxz+o9uaSU78WkLvccM/rdxKqNKjHQmsMwR7hvNtAFmjyNvRPHP2
|
||||||
|
DpDWXkngvzZjCHulsI81O1aMETVJBBzQ57pWxQ0KkY3Wt2IZNBJSTNJtfMU9DxiB
|
||||||
|
VMv2POWE0tZxFewaNAvwoCF0Q8ijsN/ZZ9rirZNI+KCHvXkU4GIK3/cxLjF70TIq
|
||||||
|
Cv5dFO/ZZFDkg5G8cA3XiI3ZvIQOxRqzv2QCTlGRpKKFFYOv8FubKElfsrMD2A==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
Certificate:
|
Certificate:
|
||||||
Data:
|
Data:
|
||||||
Version: 3 (0x2)
|
Version: 3 (0x2)
|
||||||
Serial Number:
|
Serial Number:
|
||||||
e9:d0:a7:5f:79:25:f4:3c
|
9a:41:47:cd:a1:14:62:8c
|
||||||
Signature Algorithm: sha1WithRSAEncryption
|
Signature Algorithm: sha1WithRSAEncryption
|
||||||
Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com
|
Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
|
||||||
Validity
|
Validity
|
||||||
Not Before: Oct 24 18:18:15 2011 GMT
|
Not Before: Jul 11 03:20:08 2014 GMT
|
||||||
Not After : Jul 20 18:18:15 2014 GMT
|
Not After : Apr 6 03:20:08 2017 GMT
|
||||||
Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com
|
Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
|
||||||
Subject Public Key Info:
|
Subject Public Key Info:
|
||||||
Public Key Algorithm: rsaEncryption
|
Public Key Algorithm: rsaEncryption
|
||||||
RSA Public Key: (2048 bit)
|
Public-Key: (2048 bit)
|
||||||
Modulus (2048 bit):
|
Modulus:
|
||||||
00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a:
|
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:
|
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:
|
de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98:
|
||||||
|
@ -37,51 +64,24 @@ Certificate:
|
||||||
27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
|
27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
|
||||||
X509v3 Authority Key Identifier:
|
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
|
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.yassl.com/emailAddress=info@yassl.com
|
DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
|
||||||
serial:E9:D0:A7:5F:79:25:F4:3C
|
serial:9A:41:47:CD:A1:14:62:8C
|
||||||
|
|
||||||
X509v3 Basic Constraints:
|
X509v3 Basic Constraints:
|
||||||
CA:TRUE
|
CA:TRUE
|
||||||
Signature Algorithm: sha1WithRSAEncryption
|
Signature Algorithm: sha1WithRSAEncryption
|
||||||
5f:86:14:f4:51:8b:bc:a5:4e:30:da:5e:ac:9a:f8:6c:d9:26:
|
79:78:0c:6d:79:88:91:fc:3a:15:9c:f9:27:62:16:f0:21:1f:
|
||||||
4b:93:f9:e3:1c:89:6f:9e:ee:b3:9d:77:3e:89:20:76:a3:e6:
|
fa:7d:3f:a2:a8:32:1e:f7:f2:11:a9:74:16:74:5e:dc:18:ca:
|
||||||
e8:86:15:21:db:e2:33:b2:34:d5:d0:9f:f3:c1:a4:87:92:5c:
|
f0:00:2a:d5:03:06:26:30:f1:47:83:fd:32:6e:fc:ed:aa:4f:
|
||||||
f9:d1:ff:30:2f:8e:03:bc:b3:3c:0c:32:a3:90:5f:1a:90:1e:
|
7d:0c:63:60:31:2f:7c:0c:bf:99:66:87:ed:27:08:86:2d:c4:
|
||||||
af:9d:f3:9e:d7:07:02:a9:7d:27:66:63:2f:af:18:d7:ac:18:
|
33:e8:98:23:1c:fe:a3:db:9a:49:4e:fc:5a:42:ef:71:c3:3f:
|
||||||
98:8c:83:8f:38:f3:0b:ac:36:10:75:fb:ca:76:13:50:5b:02:
|
ad:dc:4a:a8:d2:a3:1d:09:ac:33:04:7b:86:f3:6d:00:59:a3:
|
||||||
8f:73:bf:e3:a0:ee:83:52:25:54:ce:26:ce:9c:bd:2f:79:ab:
|
c8:db:d1:3c:73:f6:0e:90:d6:5e:49:e0:bf:36:63:08:7b:a5:
|
||||||
1b:60:b8:92:f1:03:c0:fc:3b:08:d9:c0:ad:d5:72:08:25:80:
|
b0:8f:35:3b:56:8c:11:35:49:04:1c:d0:e7:ba:56:c5:0d:0a:
|
||||||
61:2d:dc:9f:a7:83:62:07:47:e0:07:4c:4b:07:30:04:a9:87:
|
91:8d:d6:b7:62:19:34:12:52:4c:d2:6d:7c:c5:3d:0f:18:81:
|
||||||
1c:55:7f:07:12:d0:cb:42:5d:cb:cf:66:01:1a:17:ee:f9:0f:
|
54:cb:f6:3c:e5:84:d2:d6:71:15:ec:1a:34:0b:f0:a0:21:74:
|
||||||
60:b7:db:6f:68:e5:4e:41:62:6e:d3:6f:60:4f:4b:27:de:cf:
|
43:c8:a3:b0:df:d9:67:da:e2:ad:93:48:f8:a0:87:bd:79:14:
|
||||||
18:07:f1:13:5d:cb:3f:a9:25:44:da:52:5c:c8:04:e1:56:12:
|
e0:62:0a:df:f7:31:2e:31:7b:d1:32:2a:0a:fe:5d:14:ef:d9:
|
||||||
f5:2a:90:4e:d1:e2:af:01:b5:23:a1:ec:31:da:7b:63:69:c4:
|
64:50:e4:83:91:bc:70:0d:d7:88:8d:d9:bc:84:0e:c5:1a:b3:
|
||||||
b8:f3:e7:ce:a1:3d:c0:db:6d:f3:b2:d9:46:c8:9f:c3:b8:70:
|
bf:64:02:4e:51:91:a4:a2:85:15:83:af:f0:5b:9b:28:49:5f:
|
||||||
5a:1f:7f:ca
|
b2:b3:03:d8
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEnjCCA4agAwIBAgIJAOnQp195JfQ8MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD
|
|
||||||
VQQGEwJVUzEQMA4GA1UECBMHTW9udGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8G
|
|
||||||
A1UEChMIU2F3dG9vdGgxEzARBgNVBAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3
|
|
||||||
dy55YXNzbC5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9AeWFzc2wuY29tMB4XDTEx
|
|
||||||
MTAyNDE4MTgxNVoXDTE0MDcyMDE4MTgxNVowgZAxCzAJBgNVBAYTAlVTMRAwDgYD
|
|
||||||
VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhTYXd0b290
|
|
||||||
aDETMBEGA1UECxMKQ29uc3VsdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEd
|
|
||||||
MBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUA
|
|
||||||
A4IBDwAwggEKAoIBAQC/DMotFLIehEJbzTgfSvJNdRDxtjWf38p9A5jTrN4DZu4q
|
|
||||||
8diwfW4HVAsQmCFNgMsSIOfMT95FfclydzLqypC7aVIQAy+o85XF8YtiVhvvZ2+k
|
|
||||||
EEGVrQqb46XAsNJwdlAwW6joCCx87aeieo04KRysx+3yfJWwlYJ9SVw4zXcl772A
|
|
||||||
dVOUPD3KY1ufFbXTHRMvGdE823Y6zLh9yeXC19pAb9gh3HMbQi1TnP4a/H2rejY/
|
|
||||||
mN6EfAVnzmoUOIep8Yy1aMtof3EgK/WgY/VWL6Mm0rdvsVoX1ziZCP6TWG/+wxNJ
|
|
||||||
CBYLp01nAFIxZyNOmO1RRR25BNkL7Ngos0u97TZ5AgMBAAGjgfgwgfUwHQYDVR0O
|
|
||||||
BBYEFCeOZxF0wyYdP+0zY7Ok2B0w5ejVMIHFBgNVHSMEgb0wgbqAFCeOZxF0wyYd
|
|
||||||
P+0zY7Ok2B0w5ejVoYGWpIGTMIGQMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHTW9u
|
|
||||||
dGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8GA1UEChMIU2F3dG9vdGgxEzARBgNV
|
|
||||||
BAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkqhkiG
|
|
||||||
9w0BCQEWDmluZm9AeWFzc2wuY29tggkA6dCnX3kl9DwwDAYDVR0TBAUwAwEB/zAN
|
|
||||||
BgkqhkiG9w0BAQUFAAOCAQEAX4YU9FGLvKVOMNperJr4bNkmS5P54xyJb57us513
|
|
||||||
PokgdqPm6IYVIdviM7I01dCf88Gkh5Jc+dH/MC+OA7yzPAwyo5BfGpAer53zntcH
|
|
||||||
Aql9J2ZjL68Y16wYmIyDjzjzC6w2EHX7ynYTUFsCj3O/46Dug1IlVM4mzpy9L3mr
|
|
||||||
G2C4kvEDwPw7CNnArdVyCCWAYS3cn6eDYgdH4AdMSwcwBKmHHFV/BxLQy0Jdy89m
|
|
||||||
ARoX7vkPYLfbb2jlTkFibtNvYE9LJ97PGAfxE13LP6klRNpSXMgE4VYS9SqQTtHi
|
|
||||||
rwG1I6HsMdp7Y2nEuPPnzqE9wNtt87LZRsifw7hwWh9/yg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
Certificate:
|
Certificate:
|
||||||
Data:
|
Data:
|
||||||
Version: 1 (0x0)
|
Version: 3 (0x2)
|
||||||
Serial Number: 2 (0x2)
|
Serial Number: 1 (0x1)
|
||||||
Signature Algorithm: sha1WithRSAEncryption
|
Signature Algorithm: sha1WithRSAEncryption
|
||||||
Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com
|
Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
|
||||||
Validity
|
Validity
|
||||||
Not Before: Oct 24 18:27:13 2011 GMT
|
Not Before: Jul 11 17:20:14 2014 GMT
|
||||||
Not After : Jul 20 18:27:13 2014 GMT
|
Not After : Apr 6 17:20:14 2017 GMT
|
||||||
Subject: C=US, ST=Montana, L=Bozeman, O=yaSSL, OU=Support, CN=www.yassl.com/emailAddress=info@yassl.com
|
Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL, OU=Support, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
|
||||||
Subject Public Key Info:
|
Subject Public Key Info:
|
||||||
Public Key Algorithm: rsaEncryption
|
Public Key Algorithm: rsaEncryption
|
||||||
RSA Public Key: (2048 bit)
|
Public-Key: (2048 bit)
|
||||||
Modulus (2048 bit):
|
Modulus:
|
||||||
00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
|
00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:
|
||||||
01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
|
01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:
|
||||||
f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
|
f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:
|
||||||
|
@ -31,59 +31,74 @@ Certificate:
|
||||||
a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
|
a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:
|
||||||
ad:d7
|
ad:d7
|
||||||
Exponent: 65537 (0x10001)
|
Exponent: 65537 (0x10001)
|
||||||
|
X509v3 extensions:
|
||||||
|
X509v3 Subject Key Identifier:
|
||||||
|
B3:11:32:C9:92:98:84:E2:C9:F8:D0:3B:6E:03:42:CA:1F:0E:8E:3C
|
||||||
|
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:9A:41:47:CD:A1:14:62:8C
|
||||||
|
|
||||||
|
X509v3 Basic Constraints:
|
||||||
|
CA:TRUE
|
||||||
Signature Algorithm: sha1WithRSAEncryption
|
Signature Algorithm: sha1WithRSAEncryption
|
||||||
71:4e:d3:62:df:cc:4c:f7:cd:b7:6e:52:0b:6c:6e:e0:bd:c2:
|
3d:8c:70:05:5b:62:4b:bf:6c:b6:48:61:01:10:1d:5e:05:ba:
|
||||||
2d:07:d7:c0:b0:6e:43:1e:35:bc:30:01:50:f0:ff:99:23:6c:
|
55:94:2c:ae:59:6f:97:80:5d:6c:86:ec:9a:eb:15:45:44:e4:
|
||||||
18:1a:41:b6:11:d6:d4:19:61:fd:e4:77:97:1c:39:e1:57:ab:
|
56:f8:75:ca:8a:45:32:f4:c7:e1:fa:f2:98:1c:91:d3:3f:e8:
|
||||||
c5:15:63:77:11:36:5e:74:e2:24:0b:1f:41:78:ad:b7:81:e7:
|
0e:c9:1b:fa:e1:79:99:67:0e:0d:6b:8a:ec:1a:2c:59:c4:34:
|
||||||
b4:40:66:80:f0:4b:91:a0:6d:a8:6e:3d:53:d9:8b:ce:2a:e1:
|
04:8d:39:77:cd:b5:e9:60:5b:82:bf:34:ce:ed:c6:4f:3f:b4:
|
||||||
0b:45:65:87:a1:96:ae:ee:3e:88:d5:12:1f:78:17:ae:2c:c5:
|
5c:4d:8a:b4:f4:0a:04:12:a0:56:c1:e1:33:37:a1:54:87:48:
|
||||||
73:44:d8:dc:f4:af:d8:cc:ae:4c:e1:0c:be:55:a4:99:f7:6e:
|
e9:81:c2:0f:8f:6f:d3:52:4c:4c:32:4c:6b:9f:3a:04:8f:77:
|
||||||
96:c0:c8:45:87:bf:dc:51:57:ff:9e:73:37:6a:18:9c:c3:f9:
|
5d:ad:dc:3d:2b:f2:c9:df:3c:60:5d:d8:fc:86:72:7c:3d:d0:
|
||||||
22:7a:f4:b0:52:bd:fc:21:30:f8:c5:ff:1e:87:7d:ad:a2:5a:
|
84:4b:8c:df:26:43:fe:c0:cc:5b:e1:36:b3:3d:32:28:a3:ef:
|
||||||
35:f5:22:a8:b4:0a:76:38:e6:76:b0:98:af:1b:ec:8a:0a:43:
|
0c:20:d6:b1:50:39:d6:67:a9:8b:84:bc:92:34:eb:19:23:e8:
|
||||||
74:d2:85:34:37:84:07:e1:f6:23:b2:29:de:a6:b6:b7:4c:57:
|
10:8f:ea:bd:18:8c:93:27:3c:74:75:8e:58:04:fa:2a:74:44:
|
||||||
7e:96:06:cb:a9:16:25:29:3a:03:2d:55:7d:a6:8c:a4:f7:9e:
|
7d:fc:4d:39:df:54:17:ba:78:e1:5d:6a:70:d3:7c:a2:80:81:
|
||||||
81:c9:95:b6:7c:c1:4a:ce:94:66:0c:ca:88:eb:d2:09:f5:5b:
|
e6:19:51:91:c3:44:51:ec:bb:88:a9:53:e1:d7:a9:8c:28:f4:
|
||||||
19:58:82:df:27:fd:67:95:78:b7:02:06:d5:a7:61:bd:ef:3a:
|
21:1c:42:51:09:b4:12:6d:a0:d6:25:09:85:c6:2a:0c:af:a7:
|
||||||
fc:b2:61:cd
|
58:e6:52:8b
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIDkDCCAngCAQIwDQYJKoZIhvcNAQEFBQAwgZAxCzAJBgNVBAYTAlVTMRAwDgYD
|
MIIEnjCCA4agAwIBAgIBATANBgkqhkiG9w0BAQUFADCBlDELMAkGA1UEBhMCVVMx
|
||||||
VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhTYXd0b290
|
EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
|
||||||
aDETMBEGA1UECxMKQ29uc3VsdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEd
|
d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
|
||||||
MBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wHhcNMTExMDI0MTgyNzEzWhcN
|
bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTQwNzEx
|
||||||
MTQwNzIwMTgyNzEzWjCBijELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB01vbnRhbmEx
|
MTcyMDE0WhcNMTcwNDA2MTcyMDE0WjCBkDELMAkGA1UEBhMCVVMxEDAOBgNVBAgM
|
||||||
EDAOBgNVBAcTB0JvemVtYW4xDjAMBgNVBAoTBXlhU1NMMRAwDgYDVQQLEwdTdXBw
|
B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xEDAOBgNVBAoMB3dvbGZTU0wxEDAO
|
||||||
b3J0MRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJKoZIhvcNAQkBFg5pbmZv
|
BgNVBAsMB1N1cHBvcnQxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqG
|
||||||
QHlhc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMCVCOFX
|
SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||||
QfJxbbfSRUEnAWXGRa7yvCQwuJXOL07W9hyIvHyf+6hnf/5cnFF194rKB+c1L4/h
|
ADCCAQoCggEBAMCVCOFXQfJxbbfSRUEnAWXGRa7yvCQwuJXOL07W9hyIvHyf+6hn
|
||||||
vXvAL3yrZKgX/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/XGQ0lT+FjY1GLC2Q/rUO4
|
f/5cnFF194rKB+c1L4/hvXvAL3yrZKgX/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/X
|
||||||
pRxcNLOuAKBjxfZ/C1loeHOmjBipAm2vwxkBLrgQ48bMQLRpo0YzaYduxLsXpvPo
|
GQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBjxfZ/C1loeHOmjBipAm2vwxkBLrgQ48bM
|
||||||
3a1zvHsvIbX9ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq0KGWSrzh1Bpbx6DAwWN4
|
QLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq
|
||||||
D0Q3MDKWgDIjlaF3uhPSl3PiXSXJag3DOWCktLBpQkIJ6dgIvDMgs1gip6rrxOHm
|
0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIjlaF3uhPSl3PiXSXJag3DOWCktLBpQkIJ
|
||||||
YYPF0pbf2dBPrdcCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAcU7TYt/MTPfNt25S
|
6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBPrdcCAwEAAaOB/DCB+TAdBgNVHQ4EFgQU
|
||||||
C2xu4L3CLQfXwLBuQx41vDABUPD/mSNsGBpBthHW1Blh/eR3lxw54VerxRVjdxE2
|
sxEyyZKYhOLJ+NA7bgNCyh8OjjwwgckGA1UdIwSBwTCBvoAUJ45nEXTDJh0/7TNj
|
||||||
XnTiJAsfQXitt4HntEBmgPBLkaBtqG49U9mLzirhC0Vlh6GWru4+iNUSH3gXrizF
|
s6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5h
|
||||||
c0TY3PSv2MyuTOEMvlWkmfdulsDIRYe/3FFX/55zN2oYnMP5Inr0sFK9/CEw+MX/
|
MRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290aDETMBEGA1UECwwK
|
||||||
Hod9raJaNfUiqLQKdjjmdrCYrxvsigpDdNKFNDeEB+H2I7Ip3qa2t0xXfpYGy6kW
|
Q29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcN
|
||||||
JSk6Ay1VfaaMpPeegcmVtnzBSs6UZgzKiOvSCfVbGViC3yf9Z5V4twIG1adhve86
|
AQkBFhBpbmZvQHdvbGZzc2wuY29tggkAmkFHzaEUYowwDAYDVR0TBAUwAwEB/zAN
|
||||||
/LJhzQ==
|
BgkqhkiG9w0BAQUFAAOCAQEAPYxwBVtiS79stkhhARAdXgW6VZQsrllvl4BdbIbs
|
||||||
|
musVRUTkVvh1yopFMvTH4frymByR0z/oDskb+uF5mWcODWuK7BosWcQ0BI05d821
|
||||||
|
6WBbgr80zu3GTz+0XE2KtPQKBBKgVsHhMzehVIdI6YHCD49v01JMTDJMa586BI93
|
||||||
|
Xa3cPSvyyd88YF3Y/IZyfD3QhEuM3yZD/sDMW+E2sz0yKKPvDCDWsVA51mepi4S8
|
||||||
|
kjTrGSPoEI/qvRiMkyc8dHWOWAT6KnREffxNOd9UF7p44V1qcNN8ooCB5hlRkcNE
|
||||||
|
Uey7iKlT4depjCj0IRxCUQm0Em2g1iUJhcYqDK+nWOZSiw==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
Certificate:
|
Certificate:
|
||||||
Data:
|
Data:
|
||||||
Version: 3 (0x2)
|
Version: 3 (0x2)
|
||||||
Serial Number:
|
Serial Number:
|
||||||
e9:d0:a7:5f:79:25:f4:3c
|
9a:41:47:cd:a1:14:62:8c
|
||||||
Signature Algorithm: sha1WithRSAEncryption
|
Signature Algorithm: sha1WithRSAEncryption
|
||||||
Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com
|
Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
|
||||||
Validity
|
Validity
|
||||||
Not Before: Oct 24 18:18:15 2011 GMT
|
Not Before: Jul 11 03:20:08 2014 GMT
|
||||||
Not After : Jul 20 18:18:15 2014 GMT
|
Not After : Apr 6 03:20:08 2017 GMT
|
||||||
Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com
|
Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
|
||||||
Subject Public Key Info:
|
Subject Public Key Info:
|
||||||
Public Key Algorithm: rsaEncryption
|
Public Key Algorithm: rsaEncryption
|
||||||
RSA Public Key: (2048 bit)
|
Public-Key: (2048 bit)
|
||||||
Modulus (2048 bit):
|
Modulus:
|
||||||
00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a:
|
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:
|
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:
|
de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98:
|
||||||
|
@ -108,51 +123,51 @@ Certificate:
|
||||||
27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
|
27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
|
||||||
X509v3 Authority Key Identifier:
|
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
|
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.yassl.com/emailAddress=info@yassl.com
|
DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
|
||||||
serial:E9:D0:A7:5F:79:25:F4:3C
|
serial:9A:41:47:CD:A1:14:62:8C
|
||||||
|
|
||||||
X509v3 Basic Constraints:
|
X509v3 Basic Constraints:
|
||||||
CA:TRUE
|
CA:TRUE
|
||||||
Signature Algorithm: sha1WithRSAEncryption
|
Signature Algorithm: sha1WithRSAEncryption
|
||||||
5f:86:14:f4:51:8b:bc:a5:4e:30:da:5e:ac:9a:f8:6c:d9:26:
|
79:78:0c:6d:79:88:91:fc:3a:15:9c:f9:27:62:16:f0:21:1f:
|
||||||
4b:93:f9:e3:1c:89:6f:9e:ee:b3:9d:77:3e:89:20:76:a3:e6:
|
fa:7d:3f:a2:a8:32:1e:f7:f2:11:a9:74:16:74:5e:dc:18:ca:
|
||||||
e8:86:15:21:db:e2:33:b2:34:d5:d0:9f:f3:c1:a4:87:92:5c:
|
f0:00:2a:d5:03:06:26:30:f1:47:83:fd:32:6e:fc:ed:aa:4f:
|
||||||
f9:d1:ff:30:2f:8e:03:bc:b3:3c:0c:32:a3:90:5f:1a:90:1e:
|
7d:0c:63:60:31:2f:7c:0c:bf:99:66:87:ed:27:08:86:2d:c4:
|
||||||
af:9d:f3:9e:d7:07:02:a9:7d:27:66:63:2f:af:18:d7:ac:18:
|
33:e8:98:23:1c:fe:a3:db:9a:49:4e:fc:5a:42:ef:71:c3:3f:
|
||||||
98:8c:83:8f:38:f3:0b:ac:36:10:75:fb:ca:76:13:50:5b:02:
|
ad:dc:4a:a8:d2:a3:1d:09:ac:33:04:7b:86:f3:6d:00:59:a3:
|
||||||
8f:73:bf:e3:a0:ee:83:52:25:54:ce:26:ce:9c:bd:2f:79:ab:
|
c8:db:d1:3c:73:f6:0e:90:d6:5e:49:e0:bf:36:63:08:7b:a5:
|
||||||
1b:60:b8:92:f1:03:c0:fc:3b:08:d9:c0:ad:d5:72:08:25:80:
|
b0:8f:35:3b:56:8c:11:35:49:04:1c:d0:e7:ba:56:c5:0d:0a:
|
||||||
61:2d:dc:9f:a7:83:62:07:47:e0:07:4c:4b:07:30:04:a9:87:
|
91:8d:d6:b7:62:19:34:12:52:4c:d2:6d:7c:c5:3d:0f:18:81:
|
||||||
1c:55:7f:07:12:d0:cb:42:5d:cb:cf:66:01:1a:17:ee:f9:0f:
|
54:cb:f6:3c:e5:84:d2:d6:71:15:ec:1a:34:0b:f0:a0:21:74:
|
||||||
60:b7:db:6f:68:e5:4e:41:62:6e:d3:6f:60:4f:4b:27:de:cf:
|
43:c8:a3:b0:df:d9:67:da:e2:ad:93:48:f8:a0:87:bd:79:14:
|
||||||
18:07:f1:13:5d:cb:3f:a9:25:44:da:52:5c:c8:04:e1:56:12:
|
e0:62:0a:df:f7:31:2e:31:7b:d1:32:2a:0a:fe:5d:14:ef:d9:
|
||||||
f5:2a:90:4e:d1:e2:af:01:b5:23:a1:ec:31:da:7b:63:69:c4:
|
64:50:e4:83:91:bc:70:0d:d7:88:8d:d9:bc:84:0e:c5:1a:b3:
|
||||||
b8:f3:e7:ce:a1:3d:c0:db:6d:f3:b2:d9:46:c8:9f:c3:b8:70:
|
bf:64:02:4e:51:91:a4:a2:85:15:83:af:f0:5b:9b:28:49:5f:
|
||||||
5a:1f:7f:ca
|
b2:b3:03:d8
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIEnjCCA4agAwIBAgIJAOnQp195JfQ8MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD
|
MIIEqjCCA5KgAwIBAgIJAJpBR82hFGKMMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD
|
||||||
VQQGEwJVUzEQMA4GA1UECBMHTW9udGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8G
|
VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
|
||||||
A1UEChMIU2F3dG9vdGgxEzARBgNVBAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3
|
A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
|
||||||
dy55YXNzbC5jb20xHTAbBgkqhkiG9w0BCQEWDmluZm9AeWFzc2wuY29tMB4XDTEx
|
dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
|
||||||
MTAyNDE4MTgxNVoXDTE0MDcyMDE4MTgxNVowgZAxCzAJBgNVBAYTAlVTMRAwDgYD
|
Fw0xNDA3MTEwMzIwMDhaFw0xNzA0MDYwMzIwMDhaMIGUMQswCQYDVQQGEwJVUzEQ
|
||||||
VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhTYXd0b290
|
MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3
|
||||||
aDETMBEGA1UECxMKQ29uc3VsdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEd
|
dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns
|
||||||
MBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUA
|
LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI
|
||||||
A4IBDwAwggEKAoIBAQC/DMotFLIehEJbzTgfSvJNdRDxtjWf38p9A5jTrN4DZu4q
|
hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D
|
||||||
8diwfW4HVAsQmCFNgMsSIOfMT95FfclydzLqypC7aVIQAy+o85XF8YtiVhvvZ2+k
|
mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx
|
||||||
EEGVrQqb46XAsNJwdlAwW6joCCx87aeieo04KRysx+3yfJWwlYJ9SVw4zXcl772A
|
i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J
|
||||||
dVOUPD3KY1ufFbXTHRMvGdE823Y6zLh9yeXC19pAb9gh3HMbQi1TnP4a/H2rejY/
|
XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc
|
||||||
mN6EfAVnzmoUOIep8Yy1aMtof3EgK/WgY/VWL6Mm0rdvsVoX1ziZCP6TWG/+wxNJ
|
/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI
|
||||||
CBYLp01nAFIxZyNOmO1RRR25BNkL7Ngos0u97TZ5AgMBAAGjgfgwgfUwHQYDVR0O
|
/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB
|
||||||
BBYEFCeOZxF0wyYdP+0zY7Ok2B0w5ejVMIHFBgNVHSMEgb0wgbqAFCeOZxF0wyYd
|
+TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU
|
||||||
P+0zY7Ok2B0w5ejVoYGWpIGTMIGQMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHTW9u
|
J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD
|
||||||
dGFuYTEQMA4GA1UEBxMHQm96ZW1hbjERMA8GA1UEChMIU2F3dG9vdGgxEzARBgNV
|
VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290
|
||||||
BAsTCkNvbnN1bHRpbmcxFjAUBgNVBAMTDXd3dy55YXNzbC5jb20xHTAbBgkqhkiG
|
aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
|
||||||
9w0BCQEWDmluZm9AeWFzc2wuY29tggkA6dCnX3kl9DwwDAYDVR0TBAUwAwEB/zAN
|
MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAmkFHzaEUYowwDAYD
|
||||||
BgkqhkiG9w0BAQUFAAOCAQEAX4YU9FGLvKVOMNperJr4bNkmS5P54xyJb57us513
|
VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAeXgMbXmIkfw6FZz5J2IW8CEf
|
||||||
PokgdqPm6IYVIdviM7I01dCf88Gkh5Jc+dH/MC+OA7yzPAwyo5BfGpAer53zntcH
|
+n0/oqgyHvfyEal0FnRe3BjK8AAq1QMGJjDxR4P9Mm787apPfQxjYDEvfAy/mWaH
|
||||||
Aql9J2ZjL68Y16wYmIyDjzjzC6w2EHX7ynYTUFsCj3O/46Dug1IlVM4mzpy9L3mr
|
7ScIhi3EM+iYIxz+o9uaSU78WkLvccM/rdxKqNKjHQmsMwR7hvNtAFmjyNvRPHP2
|
||||||
G2C4kvEDwPw7CNnArdVyCCWAYS3cn6eDYgdH4AdMSwcwBKmHHFV/BxLQy0Jdy89m
|
DpDWXkngvzZjCHulsI81O1aMETVJBBzQ57pWxQ0KkY3Wt2IZNBJSTNJtfMU9DxiB
|
||||||
ARoX7vkPYLfbb2jlTkFibtNvYE9LJ97PGAfxE13LP6klRNpSXMgE4VYS9SqQTtHi
|
VMv2POWE0tZxFewaNAvwoCF0Q8ijsN/ZZ9rirZNI+KCHvXkU4GIK3/cxLjF70TIq
|
||||||
rwG1I6HsMdp7Y2nEuPPnzqE9wNtt87LZRsifw7hwWh9/yg==
|
Cv5dFO/ZZFDkg5G8cA3XiI3ZvIQOxRqzv2QCTlGRpKKFFYOv8FubKElfsrMD2A==
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
Preamble
|
Preamble
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
The licenses for most software are designed to take away your
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
|
||||||
General Public License applies to most of the Free Software
|
General Public License applies to most of the Free Software
|
||||||
Foundation's software and to any other program whose authors commit to
|
Foundation's software and to any other program whose authors commit to
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
the GNU Library General Public License instead.) You can apply it to
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
your programs, too.
|
your programs, too.
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
The precise terms and conditions for copying, distribution and
|
||||||
modification follow.
|
modification follow.
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
0. This License applies to any program or other work which contains
|
0. This License applies to any program or other work which contains
|
||||||
|
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
|
||||||
License. (Exception: if the Program itself is interactive but
|
License. (Exception: if the Program itself is interactive but
|
||||||
does not normally print such an announcement, your work based on
|
does not normally print such an announcement, your work based on
|
||||||
the Program is not required to print an announcement.)
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
These requirements apply to the modified work as a whole. If
|
||||||
identifiable sections of that work are not derived from the Program,
|
identifiable sections of that work are not derived from the Program,
|
||||||
and can be reasonably considered independent and separate works in
|
and can be reasonably considered independent and separate works in
|
||||||
|
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
|
||||||
access to copy the source code from the same place counts as
|
access to copy the source code from the same place counts as
|
||||||
distribution of the source code, even though third parties are not
|
distribution of the source code, even though third parties are not
|
||||||
compelled to copy the source along with the object code.
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
except as expressly provided under this License. Any attempt
|
except as expressly provided under this License. Any attempt
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
@ -225,7 +225,7 @@ impose that choice.
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
This section is intended to make thoroughly clear what is believed to
|
||||||
be a consequence of the rest of this License.
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
original copyright holder who places the Program under this License
|
original copyright holder who places the Program under this License
|
||||||
|
@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
|
||||||
of preserving the free status of all derivatives of our free software and
|
of preserving the free status of all derivatives of our free software and
|
||||||
of promoting the sharing and reuse of software generally.
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
NO WARRANTY
|
NO WARRANTY
|
||||||
|
|
||||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
POSSIBILITY OF SUCH DAMAGES.
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
If you develop a new program, and you want it to be of the greatest
|
||||||
possible use to the public, the best way to achieve this is to make it
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
@ -303,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License along
|
||||||
along with this program; if not, write to the Free Software
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
If the program is interactive, make it output a short notice like this
|
If the program is interactive, make it output a short notice like this
|
||||||
when it starts in an interactive mode:
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
Gnomovision version 69, Copyright (C) year name of author
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
|
@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
|
||||||
This General Public License does not permit incorporating your program into
|
This General Public License does not permit incorporating your program into
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
consider it more useful to permit linking proprietary applications with the
|
consider it more useful to permit linking proprietary applications with the
|
||||||
library. If this is what you want to do, use the GNU Library General
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License.
|
Public License instead of this License.
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
|
||||||
|
<workspace>
|
||||||
|
<project>
|
||||||
|
<path>$WS_DIR$\CyaSSL-Lib.ewp</path>
|
||||||
|
</project>
|
||||||
|
<project>
|
||||||
|
<path>$WS_DIR$\wolfCrypt-benchmark.ewp</path>
|
||||||
|
</project>
|
||||||
|
<project>
|
||||||
|
<path>$WS_DIR$\wolfCrypt-test.ewp</path>
|
||||||
|
</project>
|
||||||
|
<batchBuild/>
|
||||||
|
</workspace>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
/* benchmark-main.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "stdio.h"
|
||||||
|
|
||||||
|
typedef struct func_args {
|
||||||
|
int argc;
|
||||||
|
char** argv;
|
||||||
|
int return_code;
|
||||||
|
} func_args;
|
||||||
|
|
||||||
|
func_args args = { 0 } ;
|
||||||
|
|
||||||
|
extern int benchmark_test(void *args) ;
|
||||||
|
|
||||||
|
main(void) {
|
||||||
|
benchmark_test(&args) ;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
/* test-main.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct func_args {
|
||||||
|
int argc;
|
||||||
|
char** argv;
|
||||||
|
int return_code;
|
||||||
|
} func_args;
|
||||||
|
|
||||||
|
func_args args = { 0 } ;
|
||||||
|
|
||||||
|
extern int ctaocrypt_test(void *args) ;
|
||||||
|
|
||||||
|
main(void) {
|
||||||
|
ctaocrypt_test(&args) ;
|
||||||
|
return 0;
|
||||||
|
}
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,32 @@
|
||||||
|
/*###ICF### Section handled by ICF editor, don't touch! ****/
|
||||||
|
/*-Editor annotation file-*/
|
||||||
|
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
|
||||||
|
/*-Specials-*/
|
||||||
|
define symbol __ICFEDIT_intvec_start__ = 0x00000000;
|
||||||
|
/*-Memory Regions-*/
|
||||||
|
define symbol __ICFEDIT_region_ROM_start__ = 0x00000000;
|
||||||
|
define symbol __ICFEDIT_region_ROM_end__ = 0x0007FFFF;
|
||||||
|
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
|
||||||
|
define symbol __ICFEDIT_region_RAM_end__ = 0x2000FFFF;
|
||||||
|
/*-Sizes-*/
|
||||||
|
define symbol __ICFEDIT_size_cstack__ = 0x2000;
|
||||||
|
define symbol __ICFEDIT_size_heap__ = 0x2000;
|
||||||
|
/**** End of ICF editor section. ###ICF###*/
|
||||||
|
|
||||||
|
|
||||||
|
define memory mem with size = 4G;
|
||||||
|
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
|
||||||
|
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
|
||||||
|
|
||||||
|
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
|
||||||
|
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
|
||||||
|
|
||||||
|
initialize by copy { readwrite };
|
||||||
|
//initialize by copy with packing = none { section __DLIB_PERTHREAD }; // Required in a multi-threaded application
|
||||||
|
do not initialize { section .noinit };
|
||||||
|
|
||||||
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
|
|
||||||
|
place in ROM_region { readonly };
|
||||||
|
place in RAM_region { readwrite,
|
||||||
|
block CSTACK, block HEAP };
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,31 @@
|
||||||
|
/*###ICF### Section handled by ICF editor, don't touch! ****/
|
||||||
|
/*-Editor annotation file-*/
|
||||||
|
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
|
||||||
|
/*-Specials-*/
|
||||||
|
define symbol __ICFEDIT_intvec_start__ = 0x0;
|
||||||
|
/*-Memory Regions-*/
|
||||||
|
define symbol __ICFEDIT_region_ROM_start__ = 0x0;
|
||||||
|
define symbol __ICFEDIT_region_ROM_end__ = 0x000FFFFF;
|
||||||
|
define symbol __ICFEDIT_region_RAM_start__ = 0x1FFF0000;
|
||||||
|
define symbol __ICFEDIT_region_RAM_end__ = 0x2000FFFF;
|
||||||
|
/*-Sizes-*/
|
||||||
|
define symbol __ICFEDIT_size_cstack__ = 0x2000;
|
||||||
|
define symbol __ICFEDIT_size_heap__ = 0x3000;
|
||||||
|
/**** End of ICF editor section. ###ICF###*/
|
||||||
|
|
||||||
|
|
||||||
|
define memory mem with size = 4G;
|
||||||
|
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
|
||||||
|
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
|
||||||
|
|
||||||
|
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
|
||||||
|
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
|
||||||
|
|
||||||
|
initialize by copy { readwrite };
|
||||||
|
do not initialize { section .noinit };
|
||||||
|
|
||||||
|
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||||
|
|
||||||
|
place in ROM_region { readonly };
|
||||||
|
place in RAM_region { readwrite,
|
||||||
|
block CSTACK, block HEAP };
|
49
FreeRTOS-Plus/Source/CyaSSL/IDE/IAR-EWARM/README
Normal file
49
FreeRTOS-Plus/Source/CyaSSL/IDE/IAR-EWARM/README
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
CyaSSL IAR Project Files
|
||||||
|
|
||||||
|
This directory contains project files for IAR EWARM IDE. These
|
||||||
|
projects have been set up to generic ARM Cortex-M MPUs.
|
||||||
|
In order to generate project for specific target MPU, take following steps.
|
||||||
|
|
||||||
|
|
||||||
|
Included Project Files
|
||||||
|
-----------------------
|
||||||
|
1. Workspace: CyaSSL-Lib.eww
|
||||||
|
The workspace includes CyaSSL-Lib library and wolfCrypt-test, wolfCrypt-benchmark
|
||||||
|
executable projects. The library project generates full set library of wolfCrypt
|
||||||
|
and CyaSSL functions.
|
||||||
|
|
||||||
|
2. Test suites Project: wolfCrypt-test.ewp
|
||||||
|
generates test.out test suites executable
|
||||||
|
|
||||||
|
3. Benchmark Project: wolfCrypt-benchmark.ewp
|
||||||
|
generates benchmark.out benchmark executable
|
||||||
|
|
||||||
|
Set Up Steps
|
||||||
|
------------
|
||||||
|
0. Default Setting
|
||||||
|
Default Target of the projects are set to Cortex-M3 Simulator.
|
||||||
|
For check the projects, you can build and download to the simulator.
|
||||||
|
Open Terminal I/O window, by "view"->"Terminal I/O", and start execution.
|
||||||
|
|
||||||
|
1. Project option settings
|
||||||
|
For each project,...
|
||||||
|
General Options: Choose appropriate "Target" options
|
||||||
|
|
||||||
|
For executable projects,...
|
||||||
|
Add "SystemInit" and "startup" for your MPU
|
||||||
|
Debugger: Choose your debug "Driver"
|
||||||
|
|
||||||
|
2. For benchmark project,...
|
||||||
|
Write your own "current_time" benchmark timer under "defined(CYASSL_IAR_ARM)" in benchmark.c
|
||||||
|
|
||||||
|
3. settings.h
|
||||||
|
Uncomment the "CYASSL_IAR_ARM" define located in:
|
||||||
|
<cyassl_root>/cyassl/ctaocrypt/settings.
|
||||||
|
|
||||||
|
4. Build and download
|
||||||
|
Go to "Project->Make" and "Download and Debug" in Menu bar for EWARM build and download.
|
||||||
|
|
||||||
|
|
||||||
|
Support
|
||||||
|
-------
|
||||||
|
Please send questions or comments to support@wolfssl.com
|
166
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK-ARM/LPC43xx/time-LCP43xx.c
Normal file
166
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK-ARM/LPC43xx/time-LCP43xx.c
Normal file
|
@ -0,0 +1,166 @@
|
||||||
|
/* time.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* initialize RTC
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "lpc43xx_rtc.h"
|
||||||
|
#include "lpc43xx_cgu.h"
|
||||||
|
|
||||||
|
static void init_RTC()
|
||||||
|
{
|
||||||
|
/* Enable GPIO register interface clock */
|
||||||
|
LPC_CCU1->CLK_M4_GPIO_CFG |= 1;
|
||||||
|
while (!(LPC_CCU1->CLK_M4_GPIO_STAT & 1)) ;
|
||||||
|
|
||||||
|
/* RTC Block section ------------------------------------------------------ */
|
||||||
|
/* Init RTC module */
|
||||||
|
RTC_Init(LPC_RTC);
|
||||||
|
|
||||||
|
/* Set ALARM time for second */
|
||||||
|
RTC_SetAlarmTime (LPC_RTC, RTC_TIMETYPE_SECOND, 30);
|
||||||
|
|
||||||
|
/* Set the AMR for 30s match alarm interrupt */
|
||||||
|
RTC_AlarmIntConfig (LPC_RTC, RTC_TIMETYPE_SECOND, ENABLE);
|
||||||
|
|
||||||
|
/* Set the CIIR for minute counter interrupt*/
|
||||||
|
RTC_CntIncrIntConfig (LPC_RTC, RTC_TIMETYPE_MINUTE, ENABLE);
|
||||||
|
|
||||||
|
/* Enable rtc (starts increase the tick counter and second counter register) */
|
||||||
|
RTC_Cmd(LPC_RTC, ENABLE);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* initialize TIM
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "lpc43xx_timer.h"
|
||||||
|
|
||||||
|
static void init_TIM()
|
||||||
|
{
|
||||||
|
TIM_TIMERCFG_Type TIM_ConfigStruct;
|
||||||
|
/* Initialize timer 0, prescale count time of 1uS */
|
||||||
|
TIM_ConfigStruct.PrescaleOption = TIM_PRESCALE_TICKVAL;
|
||||||
|
TIM_ConfigStruct.PrescaleValue = 204; /* 204MHz */
|
||||||
|
/* Set configuration for Tim_config and Tim_MatchConfig */
|
||||||
|
TIM_Init(LPC_TIMER2, TIM_TIMER_MODE,&TIM_ConfigStruct);
|
||||||
|
TIM_ResetCounter(LPC_TIMER2);
|
||||||
|
/* To start timer 2 */
|
||||||
|
TIM_Cmd(LPC_TIMER2,ENABLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
double current_time()
|
||||||
|
{
|
||||||
|
return (double)LPC_TIMER2->TC/1000000.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void init_time(void) {
|
||||||
|
init_RTC() ;
|
||||||
|
init_TIM() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
struct tm *Cyassl_MDK_gmtime(const time_t *c)
|
||||||
|
{
|
||||||
|
static struct tm date ;
|
||||||
|
|
||||||
|
RTC_TIME_Type RTCFullTime;
|
||||||
|
RTC_GetFullTime (LPC_RTC, &RTCFullTime);
|
||||||
|
|
||||||
|
date.tm_year = RTCFullTime.YEAR + 100 ;
|
||||||
|
date.tm_mon = RTCFullTime.MONTH - 1 ;
|
||||||
|
date.tm_mday = RTCFullTime.DOM ;
|
||||||
|
date.tm_hour = RTCFullTime.HOUR ;
|
||||||
|
date.tm_min = RTCFullTime.MIN ;
|
||||||
|
date.tm_sec = RTCFullTime.SEC ;
|
||||||
|
|
||||||
|
#if defined(DEBUG_CYASSL)
|
||||||
|
{
|
||||||
|
extern void CYASSL_MSG(char *msg) ;
|
||||||
|
char msg[100] ;
|
||||||
|
sprintf(msg, "Debug::Cyassl_KEIL_gmtime(DATE=/%4d/%02d/%02d TIME=%02d:%02d:%02d)\n",
|
||||||
|
RTCFullTime.YEAR+2000, RTCFullTime.MONTH, RTCFullTime.DOM,
|
||||||
|
RTCFullTime.HOUR, RTCFullTime.MIN, RTCFullTime.SEC) ;
|
||||||
|
CYASSL_MSG(msg) ;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return(&date) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef struct func_args {
|
||||||
|
int argc;
|
||||||
|
char** argv;
|
||||||
|
int return_code;
|
||||||
|
} func_args;
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
void time_main(void *args)
|
||||||
|
{
|
||||||
|
char * datetime ;
|
||||||
|
int year ;
|
||||||
|
RTC_TIME_Type RTCFullTime;
|
||||||
|
|
||||||
|
if( args == NULL || ((func_args *)args)->argc == 1) {
|
||||||
|
RTC_GetFullTime (LPC_RTC, &RTCFullTime);
|
||||||
|
printf("Date: %d/%d/%d, Time: %02d:%02d:%02d\n",
|
||||||
|
RTCFullTime.MONTH, RTCFullTime.DOM, RTCFullTime.YEAR+2000,
|
||||||
|
RTCFullTime.HOUR, RTCFullTime.MIN, RTCFullTime.SEC) ;
|
||||||
|
} else if(((func_args *)args)->argc == 3 &&
|
||||||
|
((func_args *)args)->argv[1][0] == '-' &&
|
||||||
|
((func_args *)args)->argv[1][1] == 'd' ) {
|
||||||
|
|
||||||
|
datetime = ((func_args *)args)->argv[2];
|
||||||
|
sscanf(datetime, "%d/%d/%d",
|
||||||
|
(int *)&RTCFullTime.MONTH, (int *)&RTCFullTime.DOM, &year) ;
|
||||||
|
RTCFullTime.YEAR = year - 2000 ;
|
||||||
|
RTC_SetTime (LPC_RTC, RTC_TIMETYPE_MONTH, RTCFullTime.MONTH);
|
||||||
|
RTC_SetTime (LPC_RTC, RTC_TIMETYPE_YEAR, RTCFullTime.YEAR);
|
||||||
|
RTC_SetTime (LPC_RTC, RTC_TIMETYPE_DAYOFMONTH, RTCFullTime.DOM);
|
||||||
|
} else if(((func_args *)args)->argc == 3 &&
|
||||||
|
((func_args *)args)->argv[1][0] == '-' &&
|
||||||
|
((func_args *)args)->argv[1][1] == 't' ) {
|
||||||
|
RTC_GetFullTime (LPC_RTC, &RTCFullTime);
|
||||||
|
datetime = ((func_args *)args)->argv[2];
|
||||||
|
sscanf(datetime, "%d:%d:%d",
|
||||||
|
(int *)&RTCFullTime.HOUR,
|
||||||
|
(int *)&RTCFullTime.MIN,
|
||||||
|
(int *)&RTCFullTime.SEC
|
||||||
|
) ;
|
||||||
|
RTC_SetTime (LPC_RTC, RTC_TIMETYPE_SECOND, RTCFullTime.SEC);
|
||||||
|
RTC_SetTime (LPC_RTC, RTC_TIMETYPE_MINUTE, RTCFullTime.MIN);
|
||||||
|
RTC_SetTime (LPC_RTC, RTC_TIMETYPE_HOUR, RTCFullTime.HOUR);
|
||||||
|
} else printf("Invalid argument\n") ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,261 @@
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <rt_sys.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include <File_Config.h>
|
||||||
|
|
||||||
|
#pragma import(__use_no_semihosting_swi)
|
||||||
|
|
||||||
|
/* The following macro definitions may be used to translate this file:
|
||||||
|
|
||||||
|
STDIO - use standard Input/Output device
|
||||||
|
(default is NOT used)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Standard IO device handles. */
|
||||||
|
#define STDIN 0x8001
|
||||||
|
#define STDOUT 0x8002
|
||||||
|
#define STDERR 0x8003
|
||||||
|
|
||||||
|
/* Standard IO device name defines. */
|
||||||
|
const char __stdin_name[] = "STDIN";
|
||||||
|
const char __stdout_name[] = "STDOUT";
|
||||||
|
const char __stderr_name[] = "STDERR";
|
||||||
|
|
||||||
|
struct __FILE { int handle; /* Add whatever you need here */ };
|
||||||
|
|
||||||
|
#ifdef STDIO
|
||||||
|
extern int SER_GetChar (void);
|
||||||
|
extern int SER_PutChar (int ch);
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
Write character to the Serial Port
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
int sendchar (int c)
|
||||||
|
{
|
||||||
|
if (c == '\n') {
|
||||||
|
SER_PutChar ('\r');
|
||||||
|
}
|
||||||
|
SER_PutChar (c);
|
||||||
|
return (c);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
Read character from the Serial Port
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
int getkey (void)
|
||||||
|
{
|
||||||
|
int ch = SER_GetChar();
|
||||||
|
|
||||||
|
if (ch < 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return ch;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*--------------------------- _ttywrch ---------------------------------------*/
|
||||||
|
|
||||||
|
void _ttywrch (int ch)
|
||||||
|
{
|
||||||
|
#ifdef STDIO
|
||||||
|
sendchar (ch);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------- _sys_open --------------------------------------*/
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
static int KEIL_FS_open(const char *name, int openmode)
|
||||||
|
{
|
||||||
|
int i ; int ret ;
|
||||||
|
#define PATHSIZE 100
|
||||||
|
char path[PATHSIZE] ; char *p ;
|
||||||
|
|
||||||
|
if(strlen(name) > PATHSIZE)return(-1) ;
|
||||||
|
|
||||||
|
for(i = 0; i<= strlen(name); i++) {
|
||||||
|
if(name[i] == '/')path[i] = '\\' ;
|
||||||
|
else path[i] = name[i] ;
|
||||||
|
}
|
||||||
|
if(path[0] == '.' && path[1] == '\\') p = path + 2 ;
|
||||||
|
else p = path ;
|
||||||
|
|
||||||
|
ret = __sys_open (p, openmode) ;
|
||||||
|
|
||||||
|
return(ret) ;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
FILEHANDLE _sys_open (const char *name, int openmode)
|
||||||
|
{
|
||||||
|
/* Register standard Input Output devices. */
|
||||||
|
if (strcmp(name, "STDIN") == 0) {
|
||||||
|
return (STDIN);
|
||||||
|
}
|
||||||
|
if (strcmp(name, "STDOUT") == 0) {
|
||||||
|
return (STDOUT);
|
||||||
|
}
|
||||||
|
if (strcmp(name, "STDERR") == 0) {
|
||||||
|
return (STDERR);
|
||||||
|
}
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
return (KEIL_FS_open(name, openmode));
|
||||||
|
#else
|
||||||
|
return(0) ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------- _sys_close -------------------------------------*/
|
||||||
|
|
||||||
|
int _sys_close (FILEHANDLE fh)
|
||||||
|
{
|
||||||
|
if (fh > 0x8000) {
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
return (__sys_close (fh));
|
||||||
|
#else
|
||||||
|
return(0) ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------- _sys_write -------------------------------------*/
|
||||||
|
|
||||||
|
int _sys_write (FILEHANDLE fh, const U8 *buf, U32 len, int mode)
|
||||||
|
{
|
||||||
|
#ifdef STDIO
|
||||||
|
if (fh == STDOUT) {
|
||||||
|
/* Standard Output device. */
|
||||||
|
for ( ; len; len--) {
|
||||||
|
sendchar (*buf++);
|
||||||
|
}
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (fh > 0x8000) {
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
return (__sys_write (fh, buf, len));
|
||||||
|
#else
|
||||||
|
return(0) ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------- _sys_read --------------------------------------*/
|
||||||
|
|
||||||
|
int _sys_read (FILEHANDLE fh, U8 *buf, U32 len, int mode)
|
||||||
|
{
|
||||||
|
#ifdef STDIO
|
||||||
|
if (fh == STDIN) {
|
||||||
|
/* Standard Input device. */
|
||||||
|
int sz ;
|
||||||
|
while((buf[0] = getkey()) == 0) ;
|
||||||
|
;
|
||||||
|
for (sz = 0 ; sz <= len ; sz ++ ) {
|
||||||
|
if(buf[sz] == 0) break ;
|
||||||
|
else sz++ ;
|
||||||
|
buf[sz] = getkey ();
|
||||||
|
}
|
||||||
|
return (sz);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (fh > 0x8000) {
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
return (__sys_read (fh, buf, len));
|
||||||
|
#else
|
||||||
|
return(0) ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------- _sys_istty -------------------------------------*/
|
||||||
|
|
||||||
|
int _sys_istty (FILEHANDLE fh)
|
||||||
|
{
|
||||||
|
if (fh > 0x8000) {
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------- _sys_seek --------------------------------------*/
|
||||||
|
|
||||||
|
int _sys_seek (FILEHANDLE fh, long pos)
|
||||||
|
{
|
||||||
|
if (fh > 0x8000) {
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
return (__sys_seek (fh, pos));
|
||||||
|
#else
|
||||||
|
return(0) ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------- _sys_ensure ------------------------------------*/
|
||||||
|
|
||||||
|
int _sys_ensure (FILEHANDLE fh)
|
||||||
|
{
|
||||||
|
if (fh > 0x8000) {
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
return (__sys_ensure (fh));
|
||||||
|
#else
|
||||||
|
return(0) ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------- _sys_flen --------------------------------------*/
|
||||||
|
|
||||||
|
long _sys_flen (FILEHANDLE fh)
|
||||||
|
{
|
||||||
|
if (fh > 0x8000) {
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
return (__sys_flen (fh));
|
||||||
|
#else
|
||||||
|
return(0) ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*--------------------------- _sys_tmpnam ------------------------------------*/
|
||||||
|
|
||||||
|
int _sys_tmpnam (char *name, int sig, unsigned maxlen)
|
||||||
|
{
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------- _sys_command_string ----------------------------*/
|
||||||
|
|
||||||
|
char *_sys_command_string (char *cmd, int len)
|
||||||
|
{
|
||||||
|
return (cmd);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------- _sys_exit --------------------------------------*/
|
||||||
|
|
||||||
|
void _sys_exit (int return_code)
|
||||||
|
{
|
||||||
|
#ifdef CYASSL_MDK_SHELL
|
||||||
|
return ;
|
||||||
|
#else
|
||||||
|
/* Endless loop. */
|
||||||
|
while (1);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
/* certs_test.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define initial data for cert buffers */
|
||||||
|
#include <cyassl/certs_test.h>
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
#ifndef CYASSL_CERT_DATA_H
|
||||||
|
#define CYASSL_CERT_DATA_H
|
||||||
|
|
||||||
|
#ifdef USE_CERT_BUFFERS_1024
|
||||||
|
extern const unsigned char client_key_der_1024[] ;
|
||||||
|
extern int sizeof_client_key_der_1024 ;
|
||||||
|
/* ./certs/1024/client-cert.der, 1024-bit */
|
||||||
|
extern const unsigned char client_cert_der_1024[] ;
|
||||||
|
extern int sizeof_client_cert_der_1024 ;
|
||||||
|
/* ./certs/1024/dh1024.der, 1024-bit */
|
||||||
|
extern const unsigned char dh_key_der_1024[] ;
|
||||||
|
extern int sizeof_dh_key_der_1024 ;
|
||||||
|
/* ./certs/1024/dsa1024.der, 1024-bit */
|
||||||
|
extern const unsigned char dsa_key_der_1024[] ;
|
||||||
|
extern int sizeof_dsa_key_der_1024 ;
|
||||||
|
/* ./certs/1024/rsa1024.der, 1024-bit */
|
||||||
|
extern const unsigned char rsa_key_der_1024[] ;
|
||||||
|
extern int sizeof_rsa_key_der_1024 ;
|
||||||
|
|
||||||
|
#elif defined(USE_CERT_BUFFERS_2048)
|
||||||
|
/* ./certs/client-key.der, 2048-bit */
|
||||||
|
extern const unsigned char client_key_der_2048[] ;
|
||||||
|
extern int sizeof_client_key_der_2048 ;
|
||||||
|
/* ./certs/client-cert.der, 2048-bit */
|
||||||
|
extern const unsigned char client_cert_der_2048[] ;
|
||||||
|
extern int sizeof_client_cert_der_2048 ;
|
||||||
|
/* ./certs/dh2048.der, 2048-bit */
|
||||||
|
extern const unsigned char dh_key_der_2048[] ;
|
||||||
|
extern int sizeof_dh_key_der_2048 ;
|
||||||
|
/* ./certs/dsa2048.der, 2048-bit */
|
||||||
|
extern const unsigned char dsa_key_der_2048[] ;
|
||||||
|
extern int sizeof_dsa_key_der_2048;
|
||||||
|
/* ./certs/rsa2048.der, 2048-bit */
|
||||||
|
extern const unsigned char rsa_key_der_2048[] ;
|
||||||
|
extern int sizeof_rsa_key_der_2048 ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,291 @@
|
||||||
|
/* config-BEREFOOT.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**** CyaSSL for KEIL-RL Configuration ****/
|
||||||
|
|
||||||
|
#define __CORTEX_M3__
|
||||||
|
#define CYASSL_MDK_ARM
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_MAIN_DRIVER
|
||||||
|
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#define HAVE_NULL_CIPHER
|
||||||
|
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define NO_TLS
|
||||||
|
|
||||||
|
#define NO_ECHOSERVER
|
||||||
|
#define NO_ECHOCLIENT
|
||||||
|
#define NO_SIMPLE_SERVER
|
||||||
|
#define NO_SIMPLE_CLIENT
|
||||||
|
|
||||||
|
// <<< Use Configuration Wizard in Context Menu >>>
|
||||||
|
|
||||||
|
// <h> Build Target: KEIL-BAREFOOT
|
||||||
|
// <h> Single Threaded, No File System, No TCP-net
|
||||||
|
// </h>
|
||||||
|
// <e>Command Shell
|
||||||
|
#define MDK_CONF_SHELL 1
|
||||||
|
#if MDK_CONF_SHELL == 1
|
||||||
|
#define CYASSL_MDK_SHELL
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <h>CyaSSL Apps
|
||||||
|
// <h>Crypt/Cipher
|
||||||
|
// <o>Cert Storage <1=> Mem Buff (1024bytes) <2=> Mem Buff (2048bytes)
|
||||||
|
#define MDK_CONF_CERT_BUFF 1
|
||||||
|
#if MDK_CONF_CERT_BUFF == 1
|
||||||
|
#define USE_CERT_BUFFERS_1024
|
||||||
|
#elif MDK_CONF_CERT_BUFF == 2
|
||||||
|
#define USE_CERT_BUFFERS_2048
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <e>Crypt/Cipher Test Suite
|
||||||
|
#define MDK_CONF_CTaoCryptTest 1
|
||||||
|
#if MDK_CONF_CTaoCryptTest == 0
|
||||||
|
#define NO_CRYPT_TEST
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Crypt/Cipher Benchmark
|
||||||
|
#define MDK_CONF_CTaoCryptBenchmark 1
|
||||||
|
#if MDK_CONF_CTaoCryptBenchmark == 0
|
||||||
|
#define NO_CRYPT_BENCHMARK
|
||||||
|
#define BENCH_EMBEDDED
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <h>STM32 Hardware Crypt
|
||||||
|
// <e>STM32F2 Hardware RNG
|
||||||
|
#define MDK_CONF_STM32F2_RNG 0
|
||||||
|
#if MDK_CONF_STM32F2_RNG == 1
|
||||||
|
#define STM32F2_RNG
|
||||||
|
#else
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>STM32F2 Hardware Crypt
|
||||||
|
#define MDK_CONF_STM32F2_CRYPTO 0
|
||||||
|
#if MDK_CONF_STM32F2_CRYPTO == 1
|
||||||
|
#define STM32F2_CRYPTO
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
|
||||||
|
// <h>CTaoCrypt Library
|
||||||
|
|
||||||
|
// <h>MD5, SHA, SHA-256, AES, RC4, ASN, RSA
|
||||||
|
// </h>
|
||||||
|
// <e>MD2
|
||||||
|
#define MDK_CONF_MD2 0
|
||||||
|
#if MDK_CONF_MD2 == 1
|
||||||
|
#define CYASSL_MD2
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>MD4
|
||||||
|
#define MDK_CONF_MD4 1
|
||||||
|
#if MDK_CONF_MD4 == 0
|
||||||
|
#define NO_MD4
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>SHA-384
|
||||||
|
// <i>This has to be with SHA512
|
||||||
|
#define MDK_CONF_SHA384 0
|
||||||
|
#if MDK_CONF_SHA384 == 1
|
||||||
|
#define CYASSL_SHA384
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>SHA-512
|
||||||
|
#define MDK_CONF_SHA512 0
|
||||||
|
#if MDK_CONF_SHA512 == 1
|
||||||
|
#define CYASSL_SHA512
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>RIPEMD
|
||||||
|
#define MDK_CONF_RIPEMD 0
|
||||||
|
#if MDK_CONF_RIPEMD == 1
|
||||||
|
#define CYASSL_RIPEMD
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>HMAC
|
||||||
|
#define MDK_CONF_HMAC 1
|
||||||
|
#if MDK_CONF_HMAC == 0
|
||||||
|
#define NO_HMAC
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>HC128
|
||||||
|
#define MDK_CONF_HC128 0
|
||||||
|
#if MDK_CONF_HC128 == 1
|
||||||
|
#define HAVE_HC128
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>RABBIT
|
||||||
|
#define MDK_CONF_RABBIT 1
|
||||||
|
#if MDK_CONF_RABBI == 0
|
||||||
|
#define NO_RABBIT
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>AEAD
|
||||||
|
#define MDK_CONF_AEAD 0
|
||||||
|
#if MDK_CONF_AEAD == 1
|
||||||
|
#define HAVE_AEAD
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>DES3
|
||||||
|
#define MDK_CONF_DES3 1
|
||||||
|
#if MDK_CONF_DES3 == 0
|
||||||
|
#define NO_DES3
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>CAMELLIA
|
||||||
|
#define MDK_CONF_CAMELLIA 0
|
||||||
|
#if MDK_CONF_CAMELLIA == 1
|
||||||
|
#define HAVE_CAMELLIA
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>DH
|
||||||
|
// <i>need this for CYASSL_SERVER, OPENSSL_EXTRA
|
||||||
|
#define MDK_CONF_DH 1
|
||||||
|
#if MDK_CONF_DH == 0
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>DSA
|
||||||
|
#define MDK_CONF_DSA 1
|
||||||
|
#if MDK_CONF_DSA == 0
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>PWDBASED
|
||||||
|
#define MDK_CONF_PWDBASED 1
|
||||||
|
#if MDK_CONF_PWDBASED == 0
|
||||||
|
#define NO_PWDBASED
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>ECC
|
||||||
|
#define MDK_CONF_ECC 0
|
||||||
|
#if MDK_CONF_ECC == 1
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>PSK
|
||||||
|
#define MDK_CONF_PSK 1
|
||||||
|
#if MDK_CONF_PSK == 0
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>AESCCM (Turn off Hardware Crypt)
|
||||||
|
#define MDK_CONF_AESCCM 0
|
||||||
|
#if MDK_CONF_AESCCM == 1
|
||||||
|
#define HAVE_AESCCM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>AESGCM (Turn off Hardware Crypt)
|
||||||
|
#define MDK_CONF_AESGCM 0
|
||||||
|
#if MDK_CONF_AESGCM == 1
|
||||||
|
#define HAVE_AESGCM
|
||||||
|
#define BUILD_AESGCM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>NTRU (need License, "crypto_ntru.h")
|
||||||
|
#define MDK_CONF_NTRU 0
|
||||||
|
#if MDK_CONF_NTRU == 1
|
||||||
|
#define HAVE_NTRU
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <h>Others
|
||||||
|
|
||||||
|
// <e>Inline
|
||||||
|
#define MDK_CONF_INLINE 0
|
||||||
|
#if MDK_CONF_INLINE == 0
|
||||||
|
#define NO_INLINE
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <h>Debug
|
||||||
|
// <e>Debug Message
|
||||||
|
#define MDK_CONF_DebugMessage 0
|
||||||
|
#if MDK_CONF_DebugMessage == 1
|
||||||
|
#define DEBUG_CYASSL
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Check malloc
|
||||||
|
#define MDK_CONF_CheckMalloc 1
|
||||||
|
#if MDK_CONF_CheckMalloc == 1
|
||||||
|
#define CYASSL_MALLOC_CHECK
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
// <e>ErrNo.h
|
||||||
|
#define MDK_CONF_ErrNo 0
|
||||||
|
#if MDK_CONF_ErrNo == 1
|
||||||
|
#define HAVE_ERRNO
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>zlib (need "zlib.h")
|
||||||
|
#define MDK_CONF_LIBZ 0
|
||||||
|
#if MDK_CONF_LIBZ == 1
|
||||||
|
#define HAVE_LIBZ
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>CAVIUM (need CAVIUM headers)
|
||||||
|
#define MDK_CONF_CAVIUM 0
|
||||||
|
#if MDK_CONF_CAVIUM == 1
|
||||||
|
#define HAVE_CAVIUM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>Error Strings
|
||||||
|
#define MDK_CONF_ErrorStrings 1
|
||||||
|
#if MDK_CONF_ErrorStrings == 0
|
||||||
|
#define NO_ERROR_STRINGS
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>Small Stack
|
||||||
|
#define MDK_CONF_SmallStack 1
|
||||||
|
#if MDK_CONF_SmallStack == 0
|
||||||
|
#define NO_CYASSL_SMALL_STACK
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Use Fast Math
|
||||||
|
#define MDK_CONF_FASTMATH 0
|
||||||
|
#if MDK_CONF_FASTMATH == 1
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
//</h>
|
||||||
|
// <<< end of configuration section >>>
|
|
@ -0,0 +1,329 @@
|
||||||
|
/* config-FS.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**** CyaSSL for KEIL-RL Configuration ****/
|
||||||
|
|
||||||
|
#define __CORTEX_M3__
|
||||||
|
#define CYASSL_KEIL_RL
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_MAIN_DRIVER
|
||||||
|
|
||||||
|
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#define HAVE_NULL_CIPHER
|
||||||
|
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
|
||||||
|
#define NO_ECHOSERVER
|
||||||
|
#define NO_ECHOCLIENT
|
||||||
|
#define NO_SIMPLE_SERVER
|
||||||
|
#define NO_SIMPLE_CLIENT
|
||||||
|
|
||||||
|
// <<< Use Configuration Wizard in Context Menu >>>
|
||||||
|
|
||||||
|
// <h> Build Target: KEIL-FS
|
||||||
|
// <h> Single Threaded, With File System, No TCP-net
|
||||||
|
// </h>
|
||||||
|
// <e>Command Shell
|
||||||
|
#define MDK_CONF_SHELL 1
|
||||||
|
#if MDK_CONF_SHELL == 1
|
||||||
|
#define CYASSL_MDK_SHELL
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <h>CyaSSL Apps
|
||||||
|
// <h>Crypt/Cipher
|
||||||
|
// <o>Cert Storage <0=> SD Card <1=> Mem Buff (1024bytes) <2=> Mem Buff (2048bytes)
|
||||||
|
#define MDK_CONF_CERT_BUFF 0
|
||||||
|
#if MDK_CONF_CERT_BUFF== 1
|
||||||
|
#define USE_CERT_BUFFERS_1024
|
||||||
|
#elif MDK_CONF_CERT_BUFF == 2
|
||||||
|
#define USE_CERT_BUFFERS_2048
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <e>Crypt/Cipher Test Suite
|
||||||
|
#define MDK_CONF_CTaoCryptTest 1
|
||||||
|
#if MDK_CONF_CTaoCryptTest == 0
|
||||||
|
#define NO_CRYPT_TEST
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Crypt/Cipher Benchmark
|
||||||
|
#define MDK_CONF_CTaoCryptBenchmark 1
|
||||||
|
#if MDK_CONF_CTaoCryptBenchmark == 0
|
||||||
|
#define NO_CRYPT_BENCHMARK
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <h>STM32 Hardware Crypt
|
||||||
|
// <e>STM32F2 Hardware RNG
|
||||||
|
#define MDK_CONF_STM32F2_RNG 0
|
||||||
|
#if MDK_CONF_STM32F2_RNG == 1
|
||||||
|
#define STM32F2_RNG
|
||||||
|
#else
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>STM32F2 Hardware Crypt
|
||||||
|
#define MDK_CONF_STM32F2_CRYPTO 0
|
||||||
|
#if MDK_CONF_STM32F2_CRYPTO == 1
|
||||||
|
#define STM32F2_CRYPTO
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <h>CyaSSL Library
|
||||||
|
// <h>SSL (Included by default)
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <e>TLS
|
||||||
|
#define MDK_CONF_TLS 1
|
||||||
|
#if MDK_CONF_TLS == 0
|
||||||
|
#define NO_TLS
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>CertGen
|
||||||
|
#define MDK_CONF_CERT_GEN 0
|
||||||
|
#if MDK_CONF_CERT_GEN == 1
|
||||||
|
#define CYASSL_CERT_GEN
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>KeyGen
|
||||||
|
#define MDK_CONF_KEY_GEN 0
|
||||||
|
#if MDK_CONF_KEY_GEN == 1
|
||||||
|
#define CYASSL_KEY_GEN
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>CRL
|
||||||
|
#define MDK_CONF_DER_LOAD 0
|
||||||
|
#if MDK_CONF_DER_LOAD == 1
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>OpenSSL Extra
|
||||||
|
#define MDK_CONF_OPENSSL_EXTRA 0
|
||||||
|
#if MDK_CONF_OPENSSL_EXTRA == 1
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <h>CRL Monitor, OCSP (not supported with KEIL)
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <h>CTaoCrypt Library
|
||||||
|
|
||||||
|
// <h>MD5, SHA, SHA-256, AES, RC4, ASN, RSA
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <e>MD2
|
||||||
|
#define MDK_CONF_MD2 0
|
||||||
|
#if MDK_CONF_MD2 == 1
|
||||||
|
#define CYASSL_MD2
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>MD4
|
||||||
|
#define MDK_CONF_MD4 1
|
||||||
|
#if MDK_CONF_MD4 == 0
|
||||||
|
#define NO_MD4
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>SHA-384
|
||||||
|
// <i>This has to be with SHA512
|
||||||
|
#define MDK_CONF_SHA384 0
|
||||||
|
#if MDK_CONF_SHA384 == 1
|
||||||
|
#define CYASSL_SHA384
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>SHA-512
|
||||||
|
#define MDK_CONF_SHA512 0
|
||||||
|
#if MDK_CONF_SHA512 == 1
|
||||||
|
#define CYASSL_SHA512
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>RIPEMD
|
||||||
|
#define MDK_CONF_RIPEMD 0
|
||||||
|
#if MDK_CONF_RIPEMD == 1
|
||||||
|
#define CYASSL_RIPEMD
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>HMAC
|
||||||
|
#define MDK_CONF_HMAC 1
|
||||||
|
#if MDK_CONF_HMAC == 0
|
||||||
|
#define NO_HMAC
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>HC128
|
||||||
|
#define MDK_CONF_HC128 0
|
||||||
|
#if MDK_CONF_HC128 == 1
|
||||||
|
#define HAVE_HC128
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>RABBIT
|
||||||
|
#define MDK_CONF_RABBIT 1
|
||||||
|
#if MDK_CONF_RABBI == 0
|
||||||
|
#define NO_RABBIT
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>AEAD
|
||||||
|
#define MDK_CONF_AEAD 0
|
||||||
|
#if MDK_CONF_AEAD == 1
|
||||||
|
#define HAVE_AEAD
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>DES3
|
||||||
|
#define MDK_CONF_DES3 1
|
||||||
|
#if MDK_CONF_DES3 == 0
|
||||||
|
#define NO_DES3
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>CAMELLIA
|
||||||
|
#define MDK_CONF_CAMELLIA 0
|
||||||
|
#if MDK_CONF_CAMELLIA == 1
|
||||||
|
#define HAVE_CAMELLIA
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>DH
|
||||||
|
// <i>need this for CYASSL_SERVER, OPENSSL_EXTRA
|
||||||
|
#define MDK_CONF_DH 1
|
||||||
|
#if MDK_CONF_DH == 0
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>DSA
|
||||||
|
#define MDK_CONF_DSA 1
|
||||||
|
#if MDK_CONF_DSA == 0
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>PWDBASED
|
||||||
|
#define MDK_CONF_PWDBASED 1
|
||||||
|
#if MDK_CONF_PWDBASED == 0
|
||||||
|
#define NO_PWDBASED
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>ECC
|
||||||
|
#define MDK_CONF_ECC 0
|
||||||
|
#if MDK_CONF_ECC == 1
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>PSK
|
||||||
|
#define MDK_CONF_PSK 1
|
||||||
|
#if MDK_CONF_PSK == 0
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>AESCCM (Turn off Hardware Crypt)
|
||||||
|
#define MDK_CONF_AESCCM 0
|
||||||
|
#if MDK_CONF_AESCCM == 1
|
||||||
|
#define HAVE_AESCCM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>AESGCM (Turn off Hardware Crypt)
|
||||||
|
#define MDK_CONF_AESGCM 0
|
||||||
|
#if MDK_CONF_AESGCM == 1
|
||||||
|
#define HAVE_AESGCM
|
||||||
|
#define BUILD_AESGCM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>NTRU (need License, "crypto_ntru.h")
|
||||||
|
#define MDK_CONF_NTRU 0
|
||||||
|
#if MDK_CONF_NTRU == 1
|
||||||
|
#define HAVE_NTRU
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <h>Others
|
||||||
|
|
||||||
|
// <e>Inline
|
||||||
|
#define MDK_CONF_INLINE 0
|
||||||
|
#if MDK_CONF_INLINE == 0
|
||||||
|
#define NO_INLINE
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <h>Debug
|
||||||
|
// <e>Debug Message
|
||||||
|
#define MDK_CONF_DebugMessage 0
|
||||||
|
#if MDK_CONF_DebugMessage == 1
|
||||||
|
#define DEBUG_CYASSL
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Check malloc
|
||||||
|
#define MDK_CONF_CheckMalloc 1
|
||||||
|
#if MDK_CONF_CheckMalloc == 1
|
||||||
|
#define CYASSL_MALLOC_CHECK
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
// <e>ErrNo.h
|
||||||
|
#define MDK_CONF_ErrNo 0
|
||||||
|
#if MDK_CONF_ErrNo == 1
|
||||||
|
#define HAVE_ERRNO
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>zlib (need "zlib.h")
|
||||||
|
#define MDK_CONF_LIBZ 0
|
||||||
|
#if MDK_CONF_LIBZ == 1
|
||||||
|
#define HAVE_LIBZ
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>CAVIUM (need CAVIUM headers)
|
||||||
|
#define MDK_CONF_CAVIUM 0
|
||||||
|
#if MDK_CONF_CAVIUM == 1
|
||||||
|
#define HAVE_CAVIUM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>Error Strings
|
||||||
|
#define MDK_CONF_ErrorStrings 1
|
||||||
|
#if MDK_CONF_ErrorStrings == 0
|
||||||
|
#define NO_ERROR_STRINGS
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>Small Stack
|
||||||
|
#define MDK_CONF_SmallStack 1
|
||||||
|
#if MDK_CONF_SmallStack == 0
|
||||||
|
#define NO_CYASSL_SMALL_STACK
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Use Fast Math
|
||||||
|
#define MDK_CONF_FASTMATH 0
|
||||||
|
#if MDK_CONF_FASTMATH == 1
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
//</h>
|
||||||
|
// <<< end of configuration section >>>
|
|
@ -0,0 +1,351 @@
|
||||||
|
/* config-RTX-TCP-FS.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**** CyaSSL for KEIL-RL Configuration ****/
|
||||||
|
|
||||||
|
#define __CORTEX_M3__
|
||||||
|
#define CYASSL_MDK_ARM
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_MAIN_DRIVER
|
||||||
|
|
||||||
|
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#define HAVE_NULL_CIPHER
|
||||||
|
|
||||||
|
#define HAVE_KEIL_RTX
|
||||||
|
#define CYASSL_KEIL_TCP_NET
|
||||||
|
|
||||||
|
|
||||||
|
// <<< Use Configuration Wizard in Context Menu >>>
|
||||||
|
// <h> Build Target: KEIL-RTX-TCP-FS
|
||||||
|
// <h> RTOS, File System and TCP-net
|
||||||
|
// </h>
|
||||||
|
// <e>Command Shell
|
||||||
|
#define MDK_CONF_SHELL 1
|
||||||
|
#if MDK_CONF_SHELL == 1
|
||||||
|
#define CYASSL_MDK_SHELL
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <h>CyaSSL Apps
|
||||||
|
// <h>Crypt/Cipher
|
||||||
|
// <o>Cert Storage <0=> SD Card <1=> Mem Buff (1024bytes) <2=> Mem Buff (2048bytes)
|
||||||
|
#define MDK_CONF_CERT_BUFF 0
|
||||||
|
#if MDK_CONF_CERT_BUFF== 1
|
||||||
|
#define USE_CERT_BUFFERS_1024
|
||||||
|
#elif MDK_CONF_CERT_BUFF == 2
|
||||||
|
#define USE_CERT_BUFFERS_2048
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// <e>Crypt/Cipher Test Suite
|
||||||
|
#define MDK_CONF_CTaoCryptTest 1
|
||||||
|
#if MDK_CONF_CTaoCryptTest == 0
|
||||||
|
#define NO_CRYPT_TEST
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Crypt/Cipher Benchmark
|
||||||
|
#define MDK_CONF_CTaoCryptBenchmark 1
|
||||||
|
#if MDK_CONF_CTaoCryptBenchmark == 0
|
||||||
|
#define NO_CRYPT_BENCHMARK
|
||||||
|
#define BENCH_EMBEDDED
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// </h>
|
||||||
|
// <h>SSL/TLS Server/Client
|
||||||
|
// <e>echoServer
|
||||||
|
#define MDK_CONF_echoServer 1
|
||||||
|
#if MDK_CONF_echoServer == 0
|
||||||
|
#define NO_ECHOSERVER
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>echoClient
|
||||||
|
#define MDK_CONF_echoClient 1
|
||||||
|
#if MDK_CONF_echoClient == 0
|
||||||
|
#define NO_ECHOCLIENT
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>SimpleServer
|
||||||
|
#define MDK_CONF_simpleServer 1
|
||||||
|
#if MDK_CONF_simpleServer == 0
|
||||||
|
#define NO_SIMPLE_SERVER
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>SimpleCliet
|
||||||
|
#define MDK_CONF_simpleClient 1
|
||||||
|
#if MDK_CONF_simpleClient == 0
|
||||||
|
#define NO_SIMPLE_CLIENT
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// </h>
|
||||||
|
// </h>
|
||||||
|
// <h>STM32 Hardware Crypt
|
||||||
|
// <e>STM32F2 Hardware RNG
|
||||||
|
#define MDK_CONF_STM32F2_RNG 0
|
||||||
|
#if MDK_CONF_STM32F2_RNG == 1
|
||||||
|
#define STM32F2_RNG
|
||||||
|
#else
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>STM32F2 Hardware Crypt
|
||||||
|
#define MDK_CONF_STM32F2_CRYPTO 0
|
||||||
|
#if MDK_CONF_STM32F2_CRYPTO == 1
|
||||||
|
#define STM32F2_CRYPTO
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <h>CyaSSL Library
|
||||||
|
// <h>SSL (Included by default)
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <e>TLS
|
||||||
|
#define MDK_CONF_TLS 1
|
||||||
|
#if MDK_CONF_TLS == 0
|
||||||
|
#define NO_TLS
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>CertGen
|
||||||
|
#define MDK_CONF_CERT_GEN 0
|
||||||
|
#if MDK_CONF_CERT_GEN == 1
|
||||||
|
#define CYASSL_CERT_GEN
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>KeyGen
|
||||||
|
#define MDK_CONF_KEY_GEN 0
|
||||||
|
#if MDK_CONF_KEY_GEN == 1
|
||||||
|
#define CYASSL_KEY_GEN
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>CRL
|
||||||
|
#define MDK_CONF_DER_LOAD 0
|
||||||
|
#if MDK_CONF_DER_LOAD == 1
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>OpenSSL Extra
|
||||||
|
#define MDK_CONF_OPENSSL_EXTRA 1
|
||||||
|
#if MDK_CONF_OPENSSL_EXTRA == 1
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <h>CRL Monitor, OCSP (not supported with KEIL)
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <h>CTaoCrypt Library
|
||||||
|
|
||||||
|
// <h>MD5, SHA, SHA-256, AES, RC4, ASN, RSA
|
||||||
|
// </h>
|
||||||
|
// <e>MD2
|
||||||
|
#define MDK_CONF_MD2 0
|
||||||
|
#if MDK_CONF_MD2 == 1
|
||||||
|
#define CYASSL_MD2
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>MD4
|
||||||
|
#define MDK_CONF_MD4 1
|
||||||
|
#if MDK_CONF_MD4 == 0
|
||||||
|
#define NO_MD4
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>SHA-384
|
||||||
|
// <i>This has to be with SHA512
|
||||||
|
#define MDK_CONF_SHA384 0
|
||||||
|
#if MDK_CONF_SHA384 == 1
|
||||||
|
#define CYASSL_SHA384
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>SHA-512
|
||||||
|
#define MDK_CONF_SHA512 0
|
||||||
|
#if MDK_CONF_SHA512 == 1
|
||||||
|
#define CYASSL_SHA512
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>RIPEMD
|
||||||
|
#define MDK_CONF_RIPEMD 1
|
||||||
|
#if MDK_CONF_RIPEMD == 1
|
||||||
|
#define CYASSL_RIPEMD
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>HMAC
|
||||||
|
#define MDK_CONF_HMAC 1
|
||||||
|
#if MDK_CONF_HMAC == 0
|
||||||
|
#define NO_HMAC
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>HC128
|
||||||
|
#define MDK_CONF_HC128 0
|
||||||
|
#if MDK_CONF_HC128 == 1
|
||||||
|
#define HAVE_HC128
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>RABBIT
|
||||||
|
#define MDK_CONF_RABBIT 1
|
||||||
|
#if MDK_CONF_RABBI == 0
|
||||||
|
#define NO_RABBIT
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>AEAD
|
||||||
|
#define MDK_CONF_AEAD 0
|
||||||
|
#if MDK_CONF_AEAD == 1
|
||||||
|
#define HAVE_AEAD
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>DES3
|
||||||
|
#define MDK_CONF_DES3 1
|
||||||
|
#if MDK_CONF_DES3 == 0
|
||||||
|
#define NO_DES3
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>CAMELLIA
|
||||||
|
#define MDK_CONF_CAMELLIA 0
|
||||||
|
#if MDK_CONF_CAMELLIA == 1
|
||||||
|
#define HAVE_CAMELLIA
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>DH
|
||||||
|
// <i>need this for CYASSL_SERVER, OPENSSL_EXTRA
|
||||||
|
#define MDK_CONF_DH 1
|
||||||
|
#if MDK_CONF_DH == 0
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>DSA
|
||||||
|
#define MDK_CONF_DSA 1
|
||||||
|
#if MDK_CONF_DSA == 0
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>PWDBASED
|
||||||
|
#define MDK_CONF_PWDBASED 1
|
||||||
|
#if MDK_CONF_PWDBASED == 0
|
||||||
|
#define NO_PWDBASED
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>ECC
|
||||||
|
#define MDK_CONF_ECC 1
|
||||||
|
#if MDK_CONF_ECC == 1
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>PSK
|
||||||
|
#define MDK_CONF_PSK 1
|
||||||
|
#if MDK_CONF_PSK == 0
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>AESCCM (Turn off Hardware Crypt)
|
||||||
|
#define MDK_CONF_AESCCM 0
|
||||||
|
#if MDK_CONF_AESCCM == 1
|
||||||
|
#define HAVE_AESCCM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>AESGCM (Turn off Hardware Crypt)
|
||||||
|
#define MDK_CONF_AESGCM 0
|
||||||
|
#if MDK_CONF_AESGCM == 1
|
||||||
|
#define HAVE_AESGCM
|
||||||
|
#define BUILD_AESGCM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>NTRU (need License, "crypto_ntru.h")
|
||||||
|
#define MDK_CONF_NTRU 0
|
||||||
|
#if MDK_CONF_NTRU == 1
|
||||||
|
#define HAVE_NTRU
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <h>Others
|
||||||
|
|
||||||
|
// <e>Inline
|
||||||
|
#define MDK_CONF_INLINE 0
|
||||||
|
#if MDK_CONF_INLINE == 0
|
||||||
|
#define NO_INLINE
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <h>Debug
|
||||||
|
// <e>Debug Message
|
||||||
|
#define MDK_CONF_DEBUG_MSG 0
|
||||||
|
#if MDK_CONF_DEBUG_MSG == 1
|
||||||
|
#define DEBUG_CYASSL
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Check malloc
|
||||||
|
#define MDK_CONF_CHECK_MALLOC 1
|
||||||
|
#if MDK_CONF_CHECK_MALLOC == 1
|
||||||
|
#define CYASSL_MALLOC_CHECK
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
// <e>ErrNo.h
|
||||||
|
#define MDK_CONF_ERR_NO 0
|
||||||
|
#if MDK_CONF_ERR_NO == 1
|
||||||
|
#define HAVE_ERRNO
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>zlib (need "zlib.h")
|
||||||
|
#define MDK_CONF_LIBZ 0
|
||||||
|
#if MDK_CONF_LIBZ == 1
|
||||||
|
#define HAVE_LIBZ
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>CAVIUM (need CAVIUM headers)
|
||||||
|
#define MDK_CONF_CAVIUM 0
|
||||||
|
#if MDK_CONF_CAVIUM == 1
|
||||||
|
#define HAVE_CAVIUM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>Error Strings
|
||||||
|
#define MDK_CONF_ErrorStrings 1
|
||||||
|
#if MDK_CONF_ErrorStrings == 0
|
||||||
|
#define NO_ERROR_STRINGS
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>Small Stack
|
||||||
|
#define MDK_CONF_SMALL_STACK 1
|
||||||
|
#if MDK_CONF_SMALL_STACK == 0
|
||||||
|
#define NO_CYASSL_SMALL_STACK
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Use Fast Math
|
||||||
|
#define MDK_CONF_FASTMATH 0
|
||||||
|
#if MDK_CONF_FASTMATH == 1
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
//</h>
|
||||||
|
// <<< end of configuration section >>>
|
|
@ -0,0 +1,46 @@
|
||||||
|
/* config.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**** CyaSSL for KEIL-RL Configuration ****/
|
||||||
|
|
||||||
|
#define __CORTEX_M3__
|
||||||
|
#define CYASSL_MDK_ARM
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
|
||||||
|
/* for Retarget.c */
|
||||||
|
#define STDIO
|
||||||
|
#define BENCH_EMBEDDED
|
||||||
|
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#define HAVE_NULL_CIPHER
|
||||||
|
|
||||||
|
#if defined(MDK_CONF_RTX_TCP_FS)
|
||||||
|
#include "config-RTX-TCP-FS.h"
|
||||||
|
#elif defined(MDK_CONF_TCP_FS)
|
||||||
|
#include "config-TCP-FS.h"
|
||||||
|
#elif defined(MDK_CONF_FS)
|
||||||
|
#include "config-FS.h"
|
||||||
|
#elif defined(MDK_CONF_BARE_METAL)
|
||||||
|
#include "config-BARE-METAL.h"
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,249 @@
|
||||||
|
/* cyassl_MDK_ARM.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************************************************/
|
||||||
|
/** This file is for defining functions for specific to KEIL-RL. **/
|
||||||
|
/***************************************************************************************/
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#if defined (CYASSL_MDK5)
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#if defined(CYASSL_KEIL_TCP_NET)
|
||||||
|
#include "rl_net.h"
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#include <rtl.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
#include <cyassl/ctaocrypt/logging.h>
|
||||||
|
|
||||||
|
#if defined (CYASSL_CMSIS_RTOS)
|
||||||
|
#define os_dly_wait(t) osDelay(10*t)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/** KEIL-RL TCPnet ****/
|
||||||
|
/** TCPnet BSD socket does not have following functions. **/
|
||||||
|
|
||||||
|
#if defined(CYASSL_KEIL_TCP_NET)
|
||||||
|
char *inet_ntoa(struct in_addr in)
|
||||||
|
{
|
||||||
|
#define NAMESIZE 16
|
||||||
|
static char name[NAMESIZE] ;
|
||||||
|
sprintf(name, "%d.%d.%d.%d", (in.s_addr>>24)&0xff, (in.s_addr>>16)&0xff, (in.s_addr>>8)&0xff, in.s_addr&0xff) ;
|
||||||
|
return name ;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned long inet_addr(const char *cp)
|
||||||
|
{
|
||||||
|
unsigned int a[4] ; unsigned long ret ;
|
||||||
|
sscanf(cp, "%d.%d.%d.%d", &a[0], &a[1], &a[2], &a[3]) ;
|
||||||
|
ret = ((a[3]<<24) + (a[2]<<16) + (a[1]<<8) + a[0]) ;
|
||||||
|
return(ret) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*** tcp_connect is actually associated with following syassl_tcp_connect. ***/
|
||||||
|
int Cyassl_connect(int sd, const struct sockaddr* sa, int sz)
|
||||||
|
{
|
||||||
|
int ret = 0 ;
|
||||||
|
#if defined(CYASSL_KEIL_TCP_NET)
|
||||||
|
|
||||||
|
SOCKADDR_IN addr ;
|
||||||
|
|
||||||
|
addr = *(SOCKADDR_IN *)sa ;
|
||||||
|
|
||||||
|
do {
|
||||||
|
#undef connect /* Go to KEIL TCPnet connect */
|
||||||
|
ret = connect(sd, (SOCKADDR *)&addr, sizeof(addr)) ;
|
||||||
|
os_dly_wait(50);
|
||||||
|
} while(ret == SCK_EWOULDBLOCK) ;
|
||||||
|
#ifdef DEBUG_CYASSL
|
||||||
|
{
|
||||||
|
char msg[50] ;
|
||||||
|
sprintf(msg, "BSD Connect return code: %d\n", ret) ;
|
||||||
|
CYASSL_MSG(msg) ;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* CYASSL_KEIL_TCP_NET */
|
||||||
|
return(ret ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int Cyassl_accept(int sd, struct sockaddr *addr, int *addrlen)
|
||||||
|
{
|
||||||
|
int ret = 0 ;
|
||||||
|
|
||||||
|
#if defined(CYASSL_KEIL_TCP_NET)
|
||||||
|
while(1) {
|
||||||
|
#undef accept /* Go to KEIL TCPnet accept */
|
||||||
|
ret = accept(sd, addr, addrlen) ;
|
||||||
|
if(ret != SCK_EWOULDBLOCK) break ;
|
||||||
|
os_dly_wait(1);
|
||||||
|
}
|
||||||
|
#ifdef DEBUG_CYASSL
|
||||||
|
{
|
||||||
|
char msg[50] ;
|
||||||
|
sprintf(msg, "BSD Accept return code: %d\n", ret) ;
|
||||||
|
CYASSL_MSG(msg) ;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* CYASSL_KEIL_TCP_NET */
|
||||||
|
return(ret ) ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int Cyassl_recv(int sd, void *buf, size_t len, int flags)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
#if defined(CYASSL_KEIL_TCP_NET)
|
||||||
|
while(1) {
|
||||||
|
#undef recv /* Go to KEIL TCPnet recv */
|
||||||
|
ret = recv(sd, buf, len, flags) ;
|
||||||
|
if((ret != SCK_EWOULDBLOCK) &&( ret != SCK_ETIMEOUT)) break ;
|
||||||
|
os_dly_wait(1);
|
||||||
|
}
|
||||||
|
#ifdef DEBUG_CYASSL
|
||||||
|
{
|
||||||
|
char msg[50] ;
|
||||||
|
sprintf(msg, "BSD Recv return code: %d\n", ret) ;
|
||||||
|
CYASSL_MSG(msg) ;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* CYASSL_KEIL_TCP_NET */
|
||||||
|
return(ret ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Cyassl_send(int sd, const void *buf, size_t len, int flags)
|
||||||
|
{
|
||||||
|
int ret = 0 ;
|
||||||
|
|
||||||
|
#if defined(CYASSL_KEIL_TCP_NET)
|
||||||
|
while(1) {
|
||||||
|
#undef send /* Go to KEIL TCPnet send */
|
||||||
|
ret = send(sd, buf, len, flags) ;
|
||||||
|
if(ret != SCK_EWOULDBLOCK) break ;
|
||||||
|
os_dly_wait(1);
|
||||||
|
}
|
||||||
|
#ifdef DEBUG_CYASSL
|
||||||
|
{
|
||||||
|
char msg[50] ;
|
||||||
|
sprintf(msg, "BSD Send return code: %d\n", ret) ;
|
||||||
|
CYASSL_MSG(msg) ;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* CYASSL_KEIL_TCP_NET */
|
||||||
|
return(ret) ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* CYASSL_KEIL_TCP_NET */
|
||||||
|
|
||||||
|
#if defined(CYASSL_KEIL_TCP_NET)
|
||||||
|
void Cyassl_sleep(int t)
|
||||||
|
{
|
||||||
|
#if defined(HAVE_KEIL_RTX)
|
||||||
|
os_dly_wait(t/1000+1) ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
int Cyassl_tcp_select(int sd, int timeout)
|
||||||
|
{
|
||||||
|
|
||||||
|
return 0 ;
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern int strlen(const char *s) ;
|
||||||
|
|
||||||
|
FILE * CyaSSL_fopen(const char *name, const char *openmode)
|
||||||
|
{
|
||||||
|
int i ; FILE * ret ;
|
||||||
|
#define PATHSIZE 100
|
||||||
|
char path[PATHSIZE] ; char *p ;
|
||||||
|
|
||||||
|
if(strlen(name) > PATHSIZE)return(NULL) ;
|
||||||
|
|
||||||
|
for(i = 0; i<= strlen(name); i++) {
|
||||||
|
if(name[i] == '/')path[i] = '\\' ;
|
||||||
|
else path[i] = name[i] ;
|
||||||
|
}
|
||||||
|
if(path[0] == '.' && path[1] == '\\') p = path + 2 ;
|
||||||
|
else p = path ;
|
||||||
|
|
||||||
|
ret = fopen (p, openmode) ;
|
||||||
|
|
||||||
|
return(ret) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined (CYASSL_MDK5)
|
||||||
|
#define getkey getchar
|
||||||
|
#define sendchar putchar
|
||||||
|
#else
|
||||||
|
extern int getkey(void) ;
|
||||||
|
extern int sendchar(int c) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
char * Cyassl_fgets ( char * str, int num, FILE * f )
|
||||||
|
{
|
||||||
|
int i ;
|
||||||
|
|
||||||
|
for(i = 0 ; i< num ; i++) {
|
||||||
|
while((str[i] = getkey()) == 0) {
|
||||||
|
#if defined (HAVE_KEIL_RTX)
|
||||||
|
#if !defined(CYASSL_CMSIS_RTOS)
|
||||||
|
os_tsk_pass ();
|
||||||
|
#else
|
||||||
|
osThreadYield ();
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
if(str[i] == '\n' || str[i] == '\012' || str[i] == '\015') {
|
||||||
|
sendchar('\n') ;
|
||||||
|
str[i++] = '\n' ;
|
||||||
|
str[i] = '\0' ;
|
||||||
|
break ;
|
||||||
|
} else if(str[i] == '\010') { /* BS */
|
||||||
|
if(i) { /* erace one char */
|
||||||
|
sendchar('\010') ; sendchar(' ') ; sendchar('\010') ;
|
||||||
|
i = (i>0 ? (i-2) : -1 ) ;
|
||||||
|
continue ;
|
||||||
|
}
|
||||||
|
} else if(str[i] == '\033' || str[i] == '\004' ) { /* ESC or ^D */
|
||||||
|
str[i] = '\0' ;
|
||||||
|
return(0) ;
|
||||||
|
}
|
||||||
|
sendchar(str[i]) ;
|
||||||
|
}
|
||||||
|
return(str) ;
|
||||||
|
}
|
|
@ -0,0 +1,103 @@
|
||||||
|
/* cyassl_KEIL_RL.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/** This file is for defining types, values for specific to KEIL-MDK-ARM. **/
|
||||||
|
/******************************************************************************/
|
||||||
|
#ifndef CYASSL_KEIL_RL_H
|
||||||
|
#define CYASSL_KEIL_RL_H
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* Go to STDIN */
|
||||||
|
#define fgets(buff, sz, fd) Cyassl_fgets(buff, sz, fd)
|
||||||
|
extern char * Cyassl_fgets ( char * str, int num, FILE * f ) ;
|
||||||
|
|
||||||
|
#define SOCKET_T int
|
||||||
|
|
||||||
|
/*** #include <socket.h> ***/
|
||||||
|
#define NUMBITSPERBYTE 8
|
||||||
|
#define FD_SETSIZE 10
|
||||||
|
|
||||||
|
typedef long fd_mask;
|
||||||
|
#define NFDBITS (sizeof(fd_mask) * NUMBITSPERBYTE) /* bits per mask */
|
||||||
|
|
||||||
|
typedef struct fd_set {
|
||||||
|
fd_mask fds_bits[(FD_SETSIZE + NFDBITS - 1) / NFDBITS];
|
||||||
|
} fd_set;
|
||||||
|
|
||||||
|
/*** #include <sys/types.h> ***/
|
||||||
|
struct timeval {
|
||||||
|
long tv_sec; /* seconds */
|
||||||
|
long tv_usec; /* microseconds */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*** #include <unistd.h> **/
|
||||||
|
/*
|
||||||
|
int select(int nfds, fd_set *readfds, fd_set *writefds,
|
||||||
|
fd_set *exceptfds, const struct timeval *timeout);
|
||||||
|
void FD_CLR(int fd, fd_set *set);
|
||||||
|
int FD_ISSET(int fd, fd_set *set);
|
||||||
|
void FD_SET(int fd, fd_set *set);
|
||||||
|
void FD_ZERO(fd_set *set);
|
||||||
|
*/
|
||||||
|
typedef int socklen_t ;
|
||||||
|
|
||||||
|
/* for avoiding conflict with KEIL-TCPnet BSD socket */
|
||||||
|
/* Bodies are in cyassl_KEIL_RL.c */
|
||||||
|
#define connect Cyassl_connect
|
||||||
|
#define accept Cyassl_accept
|
||||||
|
#define recv Cyassl_recv
|
||||||
|
#define send Cyassl_send
|
||||||
|
#define sleep Cyassl_sleep
|
||||||
|
|
||||||
|
/* for avoiding conflicting with KEIL-TCPnet TCP socket */
|
||||||
|
/* Bodies are in test.h */
|
||||||
|
#define tcp_connect Cyassl_tcp_connect
|
||||||
|
#define tcp_socket Cyassl_tcp_soket
|
||||||
|
#define tcp_listen Cyassl_tcp_listen
|
||||||
|
#define tcp_select Cyassl_tcp_select
|
||||||
|
|
||||||
|
extern int Cyassl_connect(int sd, const struct sockaddr * sa, int sz) ;
|
||||||
|
extern int Cyassl_accept(int sd, struct sockaddr *addr, socklen_t *addrlen);
|
||||||
|
extern int Cyassl_recv(int sd, void *buf, size_t len, int flags);
|
||||||
|
extern int Cyassl_send(int sd, const void *buf, size_t len, int flags);
|
||||||
|
extern void Cyassl_sleep(int sec) ;
|
||||||
|
extern int Cyassl_tcp_select(int sd, int timeout) ;
|
||||||
|
|
||||||
|
/** KEIL-RL TCPnet ****/
|
||||||
|
/* TCPnet BSD socket does not have following functions. */
|
||||||
|
extern char *inet_ntoa(struct in_addr in);
|
||||||
|
extern unsigned long inet_addr(const char *cp);
|
||||||
|
extern int setsockopt(int sockfd, int level, int optname,
|
||||||
|
const void *optval, socklen_t optlen);
|
||||||
|
extern int select(int nfds, fd_set *readfds, fd_set *writefds,
|
||||||
|
fd_set *exceptfds, const struct timeval *timeout);
|
||||||
|
|
||||||
|
/* CyaSSL MDK-ARM time functions */
|
||||||
|
#include <time.h>
|
||||||
|
struct tm *Cyassl_MDK_gmtime(const time_t *c) ;
|
||||||
|
extern double current_time(void) ;
|
||||||
|
|
||||||
|
#endif /* CYASSL_KEIL_RL_H */
|
172
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK-ARM/MDK-ARM/CyaSSL/main.c
Normal file
172
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK-ARM/MDK-ARM/CyaSSL/main.c
Normal file
|
@ -0,0 +1,172 @@
|
||||||
|
/* main.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
#include <cyassl/ctaocrypt/logging.h>
|
||||||
|
|
||||||
|
#include <RTL.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* Initialize a Flash Memory Card
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
#if !defined(NO_FILESYSTEM)
|
||||||
|
static void init_card (void)
|
||||||
|
{
|
||||||
|
U32 retv;
|
||||||
|
|
||||||
|
while ((retv = finit (NULL)) != 0) { /* Wait until the Card is ready */
|
||||||
|
if (retv == 1) {
|
||||||
|
printf ("\nSD/MMC Init Failed");
|
||||||
|
printf ("\nInsert Memory card and press key...\n");
|
||||||
|
} else {
|
||||||
|
printf ("\nSD/MMC Card is Unformatted");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* TCP/IP tasks
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
#ifdef CYASSL_KEIL_TCP_NET
|
||||||
|
__task void tcp_tick (void)
|
||||||
|
{
|
||||||
|
|
||||||
|
CYASSL_MSG("Time tick started.") ;
|
||||||
|
#if defined (HAVE_KEIL_RTX)
|
||||||
|
os_itv_set (10);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
#if defined (HAVE_KEIL_RTX)
|
||||||
|
os_itv_wait ();
|
||||||
|
#endif
|
||||||
|
/* Timer tick every 100 ms */
|
||||||
|
timer_tick ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
__task void tcp_poll (void)
|
||||||
|
{
|
||||||
|
CYASSL_MSG("TCP polling started.\n") ;
|
||||||
|
while (1) {
|
||||||
|
main_TcpNet ();
|
||||||
|
#if defined (HAVE_KEIL_RTX)
|
||||||
|
os_tsk_pass ();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_KEIL_RTX) && defined(CYASSL_MDK_SHELL)
|
||||||
|
#define SHELL_STACKSIZE 1000
|
||||||
|
static unsigned char Shell_stack[SHELL_STACKSIZE] ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_SHELL)
|
||||||
|
extern void shell_main(void) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern void time_main(int) ;
|
||||||
|
extern void benchmark_test(void) ;
|
||||||
|
extern void SER_Init(void) ;
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* mian entry
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*** This is the parent task entry ***/
|
||||||
|
void main_task (void)
|
||||||
|
{
|
||||||
|
#ifdef CYASSL_KEIL_TCP_NET
|
||||||
|
init_TcpNet ();
|
||||||
|
|
||||||
|
os_tsk_create (tcp_tick, 2);
|
||||||
|
os_tsk_create (tcp_poll, 1);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_MDK_SHELL
|
||||||
|
#ifdef HAVE_KEIL_RTX
|
||||||
|
os_tsk_create_user(shell_main, 1, Shell_stack, SHELL_STACKSIZE) ;
|
||||||
|
#else
|
||||||
|
shell_main() ;
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
|
||||||
|
/************************************/
|
||||||
|
/*** USER APPLICATION HERE ***/
|
||||||
|
/************************************/
|
||||||
|
printf("USER LOGIC STARTED\n") ;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_KEIL_RTX
|
||||||
|
CYASSL_MSG("Terminating tcp_main\n") ;
|
||||||
|
os_tsk_delete_self ();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int myoptind = 0;
|
||||||
|
char* myoptarg = NULL;
|
||||||
|
|
||||||
|
#if defined(DEBUG_CYASSL)
|
||||||
|
extern void CyaSSL_Debugging_ON(void) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*** main entry ***/
|
||||||
|
extern void init_time(void) ;
|
||||||
|
extern void SystemInit(void);
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
|
||||||
|
SystemInit();
|
||||||
|
SER_Init() ;
|
||||||
|
#if !defined(NO_FILESYSTEM)
|
||||||
|
init_card () ; /* initializing SD card */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
init_time() ;
|
||||||
|
|
||||||
|
#if defined(DEBUG_CYASSL)
|
||||||
|
printf("Turning ON Debug message\n") ;
|
||||||
|
CyaSSL_Debugging_ON() ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_KEIL_RTX
|
||||||
|
os_sys_init (main_task) ;
|
||||||
|
#else
|
||||||
|
main_task() ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return 0 ; /* There should be no return here */
|
||||||
|
|
||||||
|
}
|
595
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK-ARM/MDK-ARM/CyaSSL/shell.c
Normal file
595
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK-ARM/MDK-ARM/CyaSSL/shell.c
Normal file
|
@ -0,0 +1,595 @@
|
||||||
|
/*shell.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*** tiny Shell for CyaSSL apps ***/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "cyassl/internal.h"
|
||||||
|
#undef RNG
|
||||||
|
#include <cyassl/ctaocrypt/logging.h>
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_ARM)
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <rtl.h>
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_KEIL_NET
|
||||||
|
#include "cyassl/test.h"
|
||||||
|
#else
|
||||||
|
typedef struct func_args {
|
||||||
|
int argc;
|
||||||
|
char** argv;
|
||||||
|
int return_code;
|
||||||
|
} func_args;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NO_ECHOCLIENT
|
||||||
|
#define echoclient_test command_not_found
|
||||||
|
#endif
|
||||||
|
#ifdef NO_ECHOSERVER
|
||||||
|
#define echoserver_test command_not_found
|
||||||
|
#endif
|
||||||
|
#ifdef NO_SIMPLE_CLIENT
|
||||||
|
#define client_test command_not_found
|
||||||
|
#endif
|
||||||
|
#ifdef NO_SIMPLE_SERVER
|
||||||
|
#define server_test command_not_found
|
||||||
|
#endif
|
||||||
|
#ifdef NO_CRYPT_BENCHMARK
|
||||||
|
#define benchmark_test command_not_found
|
||||||
|
#endif
|
||||||
|
#ifdef NO_CRYPT_TEST
|
||||||
|
#define ctaocrypt_test command_not_found
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CYASSL_KEIL_NET
|
||||||
|
#define ipaddr_comm command_not_found
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(HAVE_KEIL_RTX)
|
||||||
|
#define stack_comm command_not_found
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if !defined(DEBUG_CYASSL)
|
||||||
|
#define dbg_comm command_not_found
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
void command_not_found(void *argv) {
|
||||||
|
printf("Command not found\n") ;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern void echoclient_test(void *args) ;
|
||||||
|
extern void echoserver_test(void *args) ;
|
||||||
|
extern void benchmark_test(void *args) ;
|
||||||
|
extern void ctaocrypt_test(void *args) ;
|
||||||
|
extern void client_test(void *args) ;
|
||||||
|
extern void server_test(void *args) ;
|
||||||
|
extern void kill_task(void *args) ;
|
||||||
|
extern void time_main(void *args) ;
|
||||||
|
extern void ipaddr_comm(void *args) ;
|
||||||
|
extern void stack_comm(void *args) ;
|
||||||
|
extern void for_command(void *args) ;
|
||||||
|
extern void dbg_comm(void *arg) ;
|
||||||
|
extern void help_comm(void *arg) ;
|
||||||
|
|
||||||
|
#if !defined(NO_CRYPT_TEST)
|
||||||
|
|
||||||
|
#ifndef NO_MD5
|
||||||
|
extern void md5_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_MD2
|
||||||
|
extern void md2_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
#ifndef NO_MD4
|
||||||
|
extern void md4_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern void sha_test(void *arg) ;
|
||||||
|
|
||||||
|
#ifndef NO_SHA256
|
||||||
|
extern void sha256_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_SHA384
|
||||||
|
extern void sha384_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_SHA512
|
||||||
|
extern void sha512_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_RIPEMD
|
||||||
|
extern void ripemd_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
#ifndef NO_HMAC
|
||||||
|
#ifndef NO_MD5
|
||||||
|
extern void hmac_md5_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
extern void hmac_sha_test(void *arg) ;
|
||||||
|
|
||||||
|
#ifndef NO_SHA256
|
||||||
|
extern void hmac_sha256_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_SHA384
|
||||||
|
extern void hmac_sha384_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifndef NO_RC4
|
||||||
|
extern void arc4_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_HC128
|
||||||
|
extern void hc128_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_RABBIT
|
||||||
|
extern void rabbit_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_DES3
|
||||||
|
extern void des_test(void *arg) ;
|
||||||
|
extern void des3_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_AES
|
||||||
|
extern void aes_test(void *arg) ;
|
||||||
|
#ifdef HAVE_AESGCM
|
||||||
|
extern void aesgcm_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_AESCCM
|
||||||
|
extern void aesccm_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CAMELLIA
|
||||||
|
extern void camellia_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
extern void random_test(void *arg) ;
|
||||||
|
|
||||||
|
#ifndef NO_RSA
|
||||||
|
extern void rsa_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_DH
|
||||||
|
extern void dh_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_DSA
|
||||||
|
extern void dsa_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_PWDBASED
|
||||||
|
extern void pwdbased_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_ECC
|
||||||
|
extern void openssl_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_ECC
|
||||||
|
extern void ecc_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* NO_CRYPT_TEST */
|
||||||
|
|
||||||
|
static struct {
|
||||||
|
const char *command ;
|
||||||
|
void (*func)(void *args) ;
|
||||||
|
} commandTable[] = {
|
||||||
|
"echoclient", echoclient_test,
|
||||||
|
"echoserver", echoserver_test,
|
||||||
|
"benchmark", benchmark_test,
|
||||||
|
"test", ctaocrypt_test,
|
||||||
|
"client", client_test,
|
||||||
|
"server", server_test,
|
||||||
|
"time", time_main, /* get/set RTC: [-d yy/mm/dd] [-t hh:mm:ss]*/
|
||||||
|
"ipaddr", ipaddr_comm, /* TBD */
|
||||||
|
"stack", stack_comm, /* On/Off check stack size */
|
||||||
|
"for", for_command, /* iterate next command X times */
|
||||||
|
"debug", dbg_comm, /* On/Off debug message */
|
||||||
|
"help", help_comm, /* Breif description about the commands */
|
||||||
|
|
||||||
|
/** short name **/
|
||||||
|
"ec", echoclient_test,
|
||||||
|
"es", echoserver_test,
|
||||||
|
"bm", benchmark_test,
|
||||||
|
"te", ctaocrypt_test,
|
||||||
|
"cl", client_test,
|
||||||
|
"sv", server_test,
|
||||||
|
"ip", ipaddr_comm,
|
||||||
|
"st", stack_comm,
|
||||||
|
"dbg", dbg_comm,
|
||||||
|
"?", help_comm,
|
||||||
|
|
||||||
|
/*** test suites ****/
|
||||||
|
#if !defined(NO_CRYPT_TEST)
|
||||||
|
#ifndef NO_MD5
|
||||||
|
"md5", md5_test,
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_MD2
|
||||||
|
"md2", md2_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_MD4
|
||||||
|
"md4", md4_test,
|
||||||
|
#endif
|
||||||
|
"sha", sha_test,
|
||||||
|
#ifndef NO_SHA256
|
||||||
|
"sha256", sha256_test,
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_SHA384
|
||||||
|
"sha384", sha384_test,
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_SHA512
|
||||||
|
"sha512", sha512_test,
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_RIPEMD
|
||||||
|
"ripemd", ripemd_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_HMAC
|
||||||
|
#ifndef NO_MD5
|
||||||
|
"hmac_md5", hmac_md5_test,
|
||||||
|
#endif
|
||||||
|
"hmac_sha", hmac_sha_test,
|
||||||
|
#ifndef NO_SHA256
|
||||||
|
"hmac_sha256", hmac_sha256_test,
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_SHA384
|
||||||
|
"hmac_sha384", hmac_sha384_test,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifndef NO_RC4
|
||||||
|
"arc4", arc4_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_HC128
|
||||||
|
"hc128", hc128_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_RABBIT
|
||||||
|
"rabbit", rabbit_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DES3
|
||||||
|
"des", des_test,
|
||||||
|
"des3", des3_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_AES
|
||||||
|
"aes", aes_test,
|
||||||
|
#ifdef HAVE_AESGCM
|
||||||
|
"aesgcm", aesgcm_test,
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_AESCCM
|
||||||
|
"aesccm", aesccm_test,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CAMELLIA
|
||||||
|
"camellia", camellia_test,
|
||||||
|
#endif
|
||||||
|
"random", random_test,
|
||||||
|
#ifndef NO_RSA
|
||||||
|
"rsa", rsa_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DH
|
||||||
|
"dh", dh_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DSA
|
||||||
|
"dsa", dsa_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_PWDBASED
|
||||||
|
"pwdbased", pwdbased_test,
|
||||||
|
#endif
|
||||||
|
#ifdef OPENSSL_EXTRA
|
||||||
|
"openssl", openssl_test,
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_ECC
|
||||||
|
"ecc", ecc_test,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* NO_CRYPT_TEST */
|
||||||
|
|
||||||
|
"", NULL
|
||||||
|
} ;
|
||||||
|
|
||||||
|
enum jobtype { FORGROUND, BACKGROUND } ;
|
||||||
|
|
||||||
|
#define IF_DELIMITER(ch) ((ch) == ' ' || (ch) == '\n')
|
||||||
|
|
||||||
|
/******* Get Command Line *****************************/
|
||||||
|
static int getline(char * line, int sz, func_args *args, int*bf_flg)
|
||||||
|
{
|
||||||
|
char * ret ;
|
||||||
|
int i ;
|
||||||
|
|
||||||
|
#define MAXARGS 10
|
||||||
|
#define MAXARGLEN 30
|
||||||
|
static char *argv[MAXARGS] ;
|
||||||
|
args->argv = argv ;
|
||||||
|
|
||||||
|
putchar('>') ;
|
||||||
|
fflush(stdout) ;
|
||||||
|
ret = fgets(line, sz, stdin) ;
|
||||||
|
#define SHELL_ERROR_FGETS -102
|
||||||
|
if(ret != line) return(SHELL_ERROR_FGETS) ;
|
||||||
|
|
||||||
|
if(line[strlen(line)-2] == '&') {
|
||||||
|
(*bf_flg) = BACKGROUND ;
|
||||||
|
line[strlen(line)-2] = '\n' ;
|
||||||
|
} else {
|
||||||
|
(*bf_flg) = FORGROUND ;
|
||||||
|
}
|
||||||
|
args->argc = 0 ;
|
||||||
|
for(i=0; i<sz; i++) {
|
||||||
|
args->argv[args->argc] = &(line[i]) ;
|
||||||
|
while(!IF_DELIMITER(line[i])) i++ ;
|
||||||
|
args->argc++ ;
|
||||||
|
if(line[i] == '\n') {
|
||||||
|
line[i] = '\0' ;
|
||||||
|
break ;
|
||||||
|
} else {
|
||||||
|
line[i] = '\0' ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return i ;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int BackGround = 0 ; /* 1: background job is running */
|
||||||
|
|
||||||
|
/************* Embedded Shell Commands **********************************/
|
||||||
|
#define IP_SIZE 16
|
||||||
|
|
||||||
|
#ifdef CYASSL_KEIL_NET
|
||||||
|
static void ipaddr_comm(void *args)
|
||||||
|
{
|
||||||
|
if(((func_args *)args)->argc == 1) {
|
||||||
|
printf("IP addr: %s, port %d\n", yasslIP, yasslPort) ;
|
||||||
|
} else {
|
||||||
|
if(BackGround != 0) {
|
||||||
|
printf("Cannot change IP addr while background server is running\n") ;
|
||||||
|
} else if(((func_args *)args)->argc == 3 &&
|
||||||
|
((func_args *)args)->argv[1][0] == '-'&&
|
||||||
|
((func_args *)args)->argv[1][1] == 'a' ) {
|
||||||
|
/* strcpy(yasslIP, ((func_args *)args)->argv[2]) ; */
|
||||||
|
} else if(((func_args *)args)->argc == 3 &&
|
||||||
|
((func_args *)args)->argv[1][0] == '-' &&
|
||||||
|
((func_args *)args)->argv[1][1] == 'p' ) {
|
||||||
|
/* yasslPort = atoi(((func_args *)args)->argv[2]) ; */
|
||||||
|
} else printf("Invalid argument\n") ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(HAVE_KEIL_RTX)
|
||||||
|
static int stack_ck = 0 ;
|
||||||
|
|
||||||
|
static void stack_comm(void *args)
|
||||||
|
{
|
||||||
|
if(stack_ck) {
|
||||||
|
printf("Stack Check: Off\n") ;
|
||||||
|
stack_ck = 0 ;
|
||||||
|
} else {
|
||||||
|
printf("Stack Check: On\n") ;
|
||||||
|
stack_ck = 1 ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#define FILL_PATTERN 0xa596695a
|
||||||
|
void stack_fill(char * stack, int size)
|
||||||
|
{
|
||||||
|
int i ;
|
||||||
|
|
||||||
|
if(stack_ck == 0)return ;
|
||||||
|
for(i=1; i<size/4-10; i++)
|
||||||
|
((int *)stack)[i] = FILL_PATTERN ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void stack_check(char * stack, int size)
|
||||||
|
{
|
||||||
|
int i ;
|
||||||
|
|
||||||
|
if(stack_ck == 0)return ;
|
||||||
|
if(stack_ck == 1) {
|
||||||
|
stack_ck ++ ; return ;
|
||||||
|
}
|
||||||
|
for(i=1; i<size/4 ; i++) {
|
||||||
|
if(((int *)stack)[i] != FILL_PATTERN) break ;
|
||||||
|
}
|
||||||
|
if(i < size/4) {
|
||||||
|
printf("Stack is used %d bytes out of %d\n", size - i*4, size) ;
|
||||||
|
} else {
|
||||||
|
printf("Stack overflow. Stack size: %d\n", size) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* HAVE_KEIL_RTX */
|
||||||
|
|
||||||
|
static int for_iteration = 1 ;
|
||||||
|
|
||||||
|
static void for_command(void *args)
|
||||||
|
{
|
||||||
|
if( args == NULL || ((func_args *)args)->argc == 1) {
|
||||||
|
printf("For %d times\n", for_iteration) ;
|
||||||
|
} else if( args == NULL || ((func_args *)args)->argc == 2) {
|
||||||
|
for_iteration = atoi(((func_args *)args)->argv[1]) ;
|
||||||
|
} else printf("Invalid argument\n") ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(DEBUG_CYASSL)
|
||||||
|
|
||||||
|
static int CyasslDebug = 1 ;
|
||||||
|
|
||||||
|
static void dbg_comm(void *args)
|
||||||
|
{
|
||||||
|
if(CyasslDebug == 1) {
|
||||||
|
CyasslDebug = 0 ;
|
||||||
|
printf("Turning OFF Debug message\n") ;
|
||||||
|
CyaSSL_Debugging_OFF() ;
|
||||||
|
} else {
|
||||||
|
CyasslDebug = 1 ;
|
||||||
|
printf("Turning ON Debug message\n") ;
|
||||||
|
CyaSSL_Debugging_ON() ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static void help_comm(void *args)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define BG_JOB_STACK_SIZE 12000
|
||||||
|
#if (!defined(NO_SIMPLE_SERVER) && !defined(NO_ECHOSERVER)) && \
|
||||||
|
defined(HAVE_KEIL_RTX)
|
||||||
|
static char bg_job_stack[BG_JOB_STACK_SIZE] ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define COMMAND_STACK_SIZE 12000
|
||||||
|
#if defined(HAVE_KEIL_RTX)
|
||||||
|
static char command_stack[COMMAND_STACK_SIZE] ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_KEIL_RTX
|
||||||
|
static CyaSSL_Mutex command_mutex ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*********** Invoke Forground Command *********************/
|
||||||
|
static void command_invoke(void *args)
|
||||||
|
{
|
||||||
|
void (*func)(void * ) ;
|
||||||
|
int i,iteration ;
|
||||||
|
|
||||||
|
func = (void(*)(void *))((func_args *)args)->argv[0] ;
|
||||||
|
#ifdef HAVE_KEIL_RTX
|
||||||
|
LockMutex((CyaSSL_Mutex *)&command_mutex) ;
|
||||||
|
#endif
|
||||||
|
iteration = for_iteration ;
|
||||||
|
for(i=0; i< iteration; i++) {
|
||||||
|
if(iteration > 1) printf("--- Start for %d ---->\n", i) ;
|
||||||
|
#if defined(HAVE_KEIL_RTX)
|
||||||
|
stack_fill(command_stack, COMMAND_STACK_SIZE) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
func(args) ; /* invoke command */
|
||||||
|
|
||||||
|
#if defined(HAVE_KEIL_RTX)
|
||||||
|
stack_check(command_stack, COMMAND_STACK_SIZE) ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
if(iteration > 1)
|
||||||
|
for_iteration = 1 ;
|
||||||
|
#ifdef HAVE_KEIL_RTX
|
||||||
|
UnLockMutex((CyaSSL_Mutex *)&command_mutex) ;
|
||||||
|
os_tsk_delete_self() ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#if (!defined(NO_SIMPLE_SERVER) && !defined(NO_ECHOSERVER)) && \
|
||||||
|
defined(HAVE_KEIL_RTX)
|
||||||
|
/******* Invoke Background Job *******************************/
|
||||||
|
static void bg_job_invoke(void *args)
|
||||||
|
{
|
||||||
|
void (*func)(void * ) ;
|
||||||
|
BackGround = 1 ;
|
||||||
|
stack_fill(bg_job_stack, BG_JOB_STACK_SIZE) ;
|
||||||
|
func = (void(*)(void *))((func_args *)args)->argv[0] ;
|
||||||
|
func(args) ; /* invoke command */
|
||||||
|
stack_check(bg_job_stack, BG_JOB_STACK_SIZE) ;
|
||||||
|
#ifdef CYASSL_KEIL_NET
|
||||||
|
init_TcpNet ();
|
||||||
|
#endif
|
||||||
|
BackGround = 0 ;
|
||||||
|
os_tsk_delete_self() ; ;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LINESIZE 100
|
||||||
|
static char line[LINESIZE] ;
|
||||||
|
|
||||||
|
|
||||||
|
/********* SHEULL MAIN LOOP ***********************************/
|
||||||
|
void shell_main(void) {
|
||||||
|
int i ;
|
||||||
|
func_args args ;
|
||||||
|
int bf_flg ;
|
||||||
|
|
||||||
|
i = BackGround ;
|
||||||
|
/* Dummy for avoiding warning: BackGround is defined but not used. */
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(HAVE_KEIL_RTX)
|
||||||
|
InitMutex(&command_mutex) ;
|
||||||
|
#endif
|
||||||
|
time_main(NULL) ;
|
||||||
|
printf("Starting Shell\n") ;
|
||||||
|
while(1) {
|
||||||
|
if(getline(line, LINESIZE, &args, &bf_flg) > 0) {
|
||||||
|
for(i=0; commandTable[i].func != NULL; i++) {
|
||||||
|
if(strcmp(commandTable[i].command, args.argv[0]) == 0) {
|
||||||
|
args.argv[0] = (char *) commandTable[i].func ;
|
||||||
|
if(bf_flg == FORGROUND) {
|
||||||
|
#ifdef HAVE_KEIL_RTX
|
||||||
|
UnLockMutex((CyaSSL_Mutex *)&command_mutex) ;
|
||||||
|
os_tsk_create_user_ex( (void(*)(void *))&command_invoke, 7,
|
||||||
|
command_stack, COMMAND_STACK_SIZE, &args) ;
|
||||||
|
#else
|
||||||
|
command_invoke(&args) ;
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_KEIL_RTX
|
||||||
|
LockMutex((CyaSSL_Mutex *)&command_mutex) ;
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
|
#if (!defined(NO_SIMPLE_SERVER) && \
|
||||||
|
!defined(NO_ECHOSERVER)) && \
|
||||||
|
defined(HAVE_KEIL_RTX)
|
||||||
|
if(BackGround != 0) {
|
||||||
|
printf("Multiple background servers not supported.\n") ;
|
||||||
|
} else {
|
||||||
|
printf("\"%s\" is running with the background mode.\n",
|
||||||
|
commandTable[i].command) ;
|
||||||
|
os_tsk_create_user_ex( (void(*)(void *))&bg_job_invoke,
|
||||||
|
6, bg_job_stack, BG_JOB_STACK_SIZE, &args) ;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
printf("Invalid Command: no background job\n") ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
break ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(commandTable[i].func == NULL)
|
||||||
|
printf("Command not found\n") ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
/* ssl-dummy.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ssl.h>
|
||||||
|
#include <cyassl/internal.h>
|
||||||
|
#include <cyassl/error-ssl.h>
|
||||||
|
#include <cyassl/ctaocrypt/coding.h>
|
||||||
|
|
||||||
|
Signer* GetCA(void* vp, byte* hash)
|
||||||
|
{
|
||||||
|
Signer*s ;
|
||||||
|
return s ;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CyaSSL_dtls(CYASSL* ssl)
|
||||||
|
{
|
||||||
|
return ssl->options.dtls;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CyaSSL_get_using_nonblock(CYASSL* ssl)
|
||||||
|
{
|
||||||
|
CYASSL_ENTER("CyaSSL_get_using_nonblock");
|
||||||
|
CYASSL_LEAVE("CyaSSL_get_using_nonblock", ssl->options.usingNonblock);
|
||||||
|
return ssl->options.usingNonblock;
|
||||||
|
}
|
||||||
|
|
||||||
|
Signer* GetCAByName(void* vp, byte* hash)
|
||||||
|
{
|
||||||
|
Signer * ca ;
|
||||||
|
return(ca) ;
|
||||||
|
}
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,299 @@
|
||||||
|
/* main.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "time.h"
|
||||||
|
|
||||||
|
#define PERIPH_BASE ((uint32_t)0x40000000)
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* initialize RTC
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
#include "stm32f2xx.h"
|
||||||
|
|
||||||
|
#define assert_param(a)
|
||||||
|
|
||||||
|
#define RTC_RSF_MASK ((uint32_t)0xFFFFFF5F)
|
||||||
|
#define SYNCHRO_TIMEOUT ((uint32_t) 0x00008000)
|
||||||
|
#define Bcd2ToByte(v) \
|
||||||
|
((((uint8_t)(v & (uint8_t)0xF0) >> (uint8_t)0x4) * 10) + (v & (uint8_t)0x0F))
|
||||||
|
#define RTC_TR_RESERVED_MASK ((uint32_t)0x007F7F7F)
|
||||||
|
#define RTC_TR_MNT ((uint32_t)0x00007000)
|
||||||
|
#define RTC_TR_MNU ((uint32_t)0x00000F00)
|
||||||
|
|
||||||
|
#define PWR_OFFSET (PWR_BASE - PERIPH_BASE)
|
||||||
|
#define CR_OFFSET (PWR_OFFSET + 0x00)
|
||||||
|
#define DBP_BitNumber 0x08
|
||||||
|
#define CR_DBP_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (DBP_BitNumber * 4))
|
||||||
|
#define RTC_INIT_MASK ((uint32_t)0xFFFFFFFF)
|
||||||
|
#define INITMODE_TIMEOUT ((uint32_t) 0x00010000)
|
||||||
|
|
||||||
|
static void init_RTC()
|
||||||
|
{
|
||||||
|
__IO uint32_t initcounter = 0x00 ;
|
||||||
|
uint32_t initstatus = 0x00; /* Enable the PWR clock : RCC_APB1Periph_PWR */
|
||||||
|
((uint32_t *)RCC)[0x10] |= ((uint32_t)0x10000000) ;
|
||||||
|
|
||||||
|
/* Allow access to RTC */
|
||||||
|
*(__IO uint32_t *) CR_DBP_BB = ENABLE ;
|
||||||
|
/* RCC_LSEConfig(RCC_LSE_ON) */
|
||||||
|
*(__IO uint8_t *) (RCC_BASE + 0x70) = ((uint8_t)0x00);
|
||||||
|
/* Reset LSEBYP bit */
|
||||||
|
*(__IO uint8_t *) (RCC_BASE + 0x70) = ((uint8_t)0x00);
|
||||||
|
*(__IO uint8_t *) (RCC_BASE + 0x70) = ((uint8_t)0x01);
|
||||||
|
/* Wait till LSE is ready */
|
||||||
|
while((RCC->BDCR << 0x2) == 0x0) { }
|
||||||
|
/* Select the RTC clock source: RCC_RTCCLKSource_LSE */
|
||||||
|
((RCC_TypeDef *)RCC)->BDCR |= (uint32_t)0x00000100;
|
||||||
|
|
||||||
|
/* Enable the RTC Clock */
|
||||||
|
*(__IO uint32_t *) (PERIPH_BB_BASE + (((RCC_BASE - PERIPH_BASE)+ 0x70) * 32) + (0x0F* 4)) = (uint32_t)ENABLE;
|
||||||
|
|
||||||
|
*(__IO uint32_t *) CR_DBP_BB = (uint32_t)ENABLE;
|
||||||
|
RTC->ISR = (uint32_t) RTC_INIT_MASK;
|
||||||
|
do {
|
||||||
|
initstatus = RTC->ISR & RTC_ISR_INITF;
|
||||||
|
initcounter++;
|
||||||
|
} while((initcounter != INITMODE_TIMEOUT) && (initstatus == 0x00));
|
||||||
|
|
||||||
|
/* Disable the write protection for RTC registers */
|
||||||
|
RTC->WPR = 0xCA;
|
||||||
|
RTC->WPR = 0x53;
|
||||||
|
|
||||||
|
RTC->CR &= ((uint32_t)~(RTC_CR_FMT)); /* Clear RTC CR FMT Bit */
|
||||||
|
/* Set RTC_CR register */
|
||||||
|
RTC->CR |= ((uint32_t)0x00000000) ; /* RTC_HourFormat_24 */
|
||||||
|
|
||||||
|
/* Configure the RTC PRER */
|
||||||
|
RTC->PRER = 0x7f ;
|
||||||
|
RTC->PRER |= (uint32_t)(0xff << 16);
|
||||||
|
|
||||||
|
/* Exit Initialization mode */
|
||||||
|
RTC->ISR &= (uint32_t)~RTC_ISR_INIT;
|
||||||
|
|
||||||
|
/* Enable the write protection for RTC registers */
|
||||||
|
RTC->WPR = 0xFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* initialize TIM
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
#define RCC_APB1Periph_TIM2 ((uint32_t)0x00000001)
|
||||||
|
|
||||||
|
static void init_TIM()
|
||||||
|
{
|
||||||
|
uint16_t tmpcr1 = 0;
|
||||||
|
|
||||||
|
((uint32_t *)RCC)[0x10] |= RCC_APB1Periph_TIM2 ;
|
||||||
|
|
||||||
|
tmpcr1 = TIM2->CR1 ;
|
||||||
|
tmpcr1 &= (uint16_t) (~(((uint16_t)0x0010) | ((uint16_t)0x0060) ));
|
||||||
|
/* CR1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS) */
|
||||||
|
tmpcr1 |= (uint16_t)0x0000 ; /* CR1 |= TIM_CounterMode_Up */
|
||||||
|
TIM2->CR1= tmpcr1 ;
|
||||||
|
|
||||||
|
TIM2->ARR = 0xffffffff ; /* ARR= TIM_Period */
|
||||||
|
TIM2->PSC = 60 ; /* PSC = TIM_Prescaler */
|
||||||
|
TIM2->EGR = ((uint16_t)0x0001) ; /* EGR = TIM_PSCReloadMode_Immediate */
|
||||||
|
|
||||||
|
*(uint16_t *)(PERIPH_BASE+0x0) |=((uint16_t)0x0001) ;
|
||||||
|
/* TIM_Cmd(TIM2, ENABLE) ; */
|
||||||
|
}
|
||||||
|
|
||||||
|
void init_time(void) {
|
||||||
|
init_RTC() ;
|
||||||
|
init_TIM() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void GetTime(uint8_t *h, uint8_t *m, uint8_t *s)
|
||||||
|
{
|
||||||
|
uint32_t tmpreg = 0;
|
||||||
|
tmpreg = (uint32_t)(RTC->TR & RTC_TR_RESERVED_MASK);
|
||||||
|
*h = (uint8_t)Bcd2ToByte((uint8_t)((tmpreg & (RTC_TR_HT | RTC_TR_HU)) >> 16));
|
||||||
|
*m = (uint8_t)Bcd2ToByte((uint8_t)((tmpreg & (RTC_TR_MNT | RTC_TR_MNU)) >>8));
|
||||||
|
*s = (uint8_t)Bcd2ToByte((tmpreg & (RTC_TR_ST | RTC_TR_SU)));
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint32_t ByteToBcd2(uint8_t Value)
|
||||||
|
{
|
||||||
|
uint8_t bcdhigh = 0;
|
||||||
|
while (Value >= 10) {
|
||||||
|
bcdhigh++;
|
||||||
|
Value -= 10;
|
||||||
|
}
|
||||||
|
return ((uint8_t)(bcdhigh << 4) | Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SetTime(uint8_t h, uint8_t m, uint8_t s)
|
||||||
|
{
|
||||||
|
__IO uint32_t synchrocounter = 0;
|
||||||
|
uint32_t synchrostatus = 0x00;
|
||||||
|
__IO uint32_t initcounter = 0;
|
||||||
|
uint32_t initstatus = 0x00;
|
||||||
|
uint32_t tmpreg ;
|
||||||
|
|
||||||
|
tmpreg = ((ByteToBcd2(h) << 16) | (ByteToBcd2(m) << 8) | ByteToBcd2(s)) ;
|
||||||
|
/* Disable the write protection for RTC registers */
|
||||||
|
RTC->WPR = 0xCA;
|
||||||
|
RTC->WPR = 0x53;
|
||||||
|
RTC->ISR &= (uint32_t)~RTC_ISR_INIT;
|
||||||
|
|
||||||
|
RTC->ISR = (uint32_t)RTC_INIT_MASK;
|
||||||
|
|
||||||
|
/* Wait till RTC is in INIT state and if Time out is reached exit */
|
||||||
|
do {
|
||||||
|
initstatus = RTC->ISR & RTC_ISR_INITF;
|
||||||
|
initcounter++;
|
||||||
|
} while((initcounter != INITMODE_TIMEOUT) && (initstatus == 0x00));
|
||||||
|
|
||||||
|
RTC->TR = (uint32_t)(tmpreg & RTC_TR_RESERVED_MASK);
|
||||||
|
|
||||||
|
RTC->ISR &= (uint32_t)RTC_RSF_MASK;
|
||||||
|
/* Wait the registers to be synchronised */
|
||||||
|
do {
|
||||||
|
synchrostatus = RTC->ISR & RTC_ISR_RSF;
|
||||||
|
synchrocounter++;
|
||||||
|
} while((synchrocounter != SYNCHRO_TIMEOUT) && (synchrostatus == 0x00));
|
||||||
|
|
||||||
|
RTC->WPR = 0xFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void GetDate(uint8_t *y, uint8_t *m, uint8_t *d)
|
||||||
|
{
|
||||||
|
uint32_t tmpreg = 0;
|
||||||
|
tmpreg = (uint32_t)(RTC->DR & RTC_TR_RESERVED_MASK);
|
||||||
|
*y = (uint8_t)Bcd2ToByte((uint8_t)((tmpreg & (RTC_DR_YT|RTC_DR_YU)) >>16));
|
||||||
|
*m = (uint8_t)Bcd2ToByte((uint8_t)((tmpreg & (RTC_DR_MT|RTC_DR_MU)) >> 8));
|
||||||
|
*d = (uint8_t)Bcd2ToByte((uint8_t)(tmpreg & (RTC_DR_DT |RTC_DR_DU)));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SetDate(uint8_t y, uint8_t m, uint8_t d)
|
||||||
|
{
|
||||||
|
__IO uint32_t synchrocounter = 0;
|
||||||
|
uint32_t synchrostatus = 0x00;
|
||||||
|
__IO uint32_t initcounter = 0;
|
||||||
|
uint32_t initstatus = 0x00;
|
||||||
|
uint32_t tmpreg = 0 ;
|
||||||
|
|
||||||
|
tmpreg = ((ByteToBcd2(y) << 16) | (ByteToBcd2(m) << 8) | ByteToBcd2(d)) ;
|
||||||
|
/* Disable the write protection for RTC registers */
|
||||||
|
RTC->WPR = 0xCA;
|
||||||
|
RTC->WPR = 0x53;
|
||||||
|
RTC->ISR &= (uint32_t)~RTC_ISR_INIT;
|
||||||
|
|
||||||
|
RTC->ISR = (uint32_t)RTC_INIT_MASK;
|
||||||
|
|
||||||
|
/* Wait till RTC is in INIT state and if Time out is reached exit */
|
||||||
|
do {
|
||||||
|
initstatus = RTC->ISR & RTC_ISR_INITF;
|
||||||
|
initcounter++;
|
||||||
|
} while((initcounter != INITMODE_TIMEOUT) && (initstatus == 0x00));
|
||||||
|
|
||||||
|
RTC->DR = (uint32_t)(tmpreg & RTC_TR_RESERVED_MASK);
|
||||||
|
|
||||||
|
RTC->ISR &= (uint32_t)RTC_RSF_MASK;
|
||||||
|
/* Wait the registers to be synchronised */
|
||||||
|
do {
|
||||||
|
synchrostatus = RTC->ISR & RTC_ISR_RSF;
|
||||||
|
synchrocounter++;
|
||||||
|
} while((synchrocounter != SYNCHRO_TIMEOUT) && (synchrostatus == 0x00));
|
||||||
|
|
||||||
|
RTC->WPR = 0xFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
void CYASSL_MSG(const char *msg) ;
|
||||||
|
|
||||||
|
struct tm *Cyassl_MDK_gmtime(const time_t *c)
|
||||||
|
{
|
||||||
|
uint8_t h, m, s ;
|
||||||
|
uint8_t y, mo, d ;
|
||||||
|
static struct tm date ;
|
||||||
|
|
||||||
|
GetTime(&h, &m, &s) ;
|
||||||
|
GetDate(&y, &mo, &d) ;
|
||||||
|
|
||||||
|
date.tm_year = y + 100 ;
|
||||||
|
date.tm_mon = mo - 1 ;
|
||||||
|
date.tm_mday = d ;
|
||||||
|
date.tm_hour = h ;
|
||||||
|
date.tm_min = m ;
|
||||||
|
date.tm_sec = s ;
|
||||||
|
|
||||||
|
#if defined(DEBUG_CYASSL)
|
||||||
|
{
|
||||||
|
char msg[100] ;
|
||||||
|
sprintf(msg,
|
||||||
|
"Debug::Cyassl_KEIL_gmtime(DATE=/%2d/%02d/%04d TIME=%02d:%02d:%02d)\n",
|
||||||
|
d, mo, y+2000, h, m, s) ;
|
||||||
|
CYASSL_MSG(msg) ;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return(&date) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
double current_time()
|
||||||
|
{
|
||||||
|
return ((double)TIM2->CNT/1000000.0) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef struct func_args {
|
||||||
|
int argc;
|
||||||
|
char** argv;
|
||||||
|
int return_code;
|
||||||
|
} func_args;
|
||||||
|
|
||||||
|
void time_main(void *args)
|
||||||
|
{
|
||||||
|
char * datetime ;
|
||||||
|
uint8_t h, m, s ;
|
||||||
|
uint8_t y, mo, d ;
|
||||||
|
|
||||||
|
if( args == NULL || ((func_args *)args)->argc == 1) {
|
||||||
|
GetTime(&h, &m, &s) ;
|
||||||
|
GetDate(&y, &mo, &d) ;
|
||||||
|
printf("Date: %d/%d/%d, Time: %02d:%02d:%02d\n",
|
||||||
|
mo, d, y+2000, h, m, s) ;
|
||||||
|
} else if(((func_args *)args)->argc == 3 &&
|
||||||
|
((func_args *)args)->argv[1][0] == '-' &&
|
||||||
|
((func_args *)args)->argv[1][1] == 'd' ) {
|
||||||
|
datetime = ((func_args *)args)->argv[2];
|
||||||
|
sscanf(datetime, "%d/%d/%d", (int *)&mo, (int *)&d, (int *) &y) ;
|
||||||
|
SetDate(y-2000, mo, d) ;
|
||||||
|
} else if(((func_args *)args)->argc == 3 &&
|
||||||
|
((func_args *)args)->argv[1][0] == '-' &&
|
||||||
|
((func_args *)args)->argv[1][1] == 't' ) {
|
||||||
|
datetime = ((func_args *)args)->argv[2];
|
||||||
|
sscanf(datetime, "%d:%d:%d",
|
||||||
|
(int *)&h, (int *)&m, (int *)&s) ;
|
||||||
|
SetTime(h, m, s) ;
|
||||||
|
} else printf("Invalid argument\n") ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************
|
||||||
|
time()
|
||||||
|
********************************************************************/
|
||||||
|
time_t time(time_t * t) { return 0 ; }
|
185
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Conf/config-Crypt.h
Normal file
185
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Conf/config-Crypt.h
Normal file
|
@ -0,0 +1,185 @@
|
||||||
|
/* config-FS.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// <<< Use Configuration Wizard in Context Menu >>>
|
||||||
|
|
||||||
|
// <h> wolfCrypt Configuration
|
||||||
|
|
||||||
|
// <h>Cert/Key Strage
|
||||||
|
// <o>Cert Storage <0=> SD Card <1=> Mem Buff (1024bytes) <2=> Mem Buff (2048bytes)
|
||||||
|
#define MDK_CONF_CERT_BUFF 0
|
||||||
|
#if MDK_CONF_CERT_BUFF== 1
|
||||||
|
#define USE_CERT_BUFFERS_1024
|
||||||
|
#elif MDK_CONF_CERT_BUFF == 2
|
||||||
|
#define USE_CERT_BUFFERS_2048
|
||||||
|
#endif
|
||||||
|
//</h>
|
||||||
|
|
||||||
|
// <h>Crypt Algrithm
|
||||||
|
|
||||||
|
// <h>MD5, SHA, SHA-256, AES, RC4, ASN, RSA
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <e>MD2
|
||||||
|
#define MDK_CONF_MD2 0
|
||||||
|
#if MDK_CONF_MD2 == 1
|
||||||
|
#define CYASSL_MD2
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>MD4
|
||||||
|
#define MDK_CONF_MD4 1
|
||||||
|
#if MDK_CONF_MD4 == 0
|
||||||
|
#define NO_MD4
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>SHA-384
|
||||||
|
// <i>This has to be with SHA512
|
||||||
|
#define MDK_CONF_SHA384 0
|
||||||
|
#if MDK_CONF_SHA384 == 1
|
||||||
|
#define CYASSL_SHA384
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>SHA-512
|
||||||
|
#define MDK_CONF_SHA512 0
|
||||||
|
#if MDK_CONF_SHA512 == 1
|
||||||
|
#define CYASSL_SHA512
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>RIPEMD
|
||||||
|
#define MDK_CONF_RIPEMD 0
|
||||||
|
#if MDK_CONF_RIPEMD == 1
|
||||||
|
#define CYASSL_RIPEMD
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>HMAC
|
||||||
|
#define MDK_CONF_HMAC 1
|
||||||
|
#if MDK_CONF_HMAC == 0
|
||||||
|
#define NO_HMAC
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>HC128
|
||||||
|
#define MDK_CONF_HC128 0
|
||||||
|
#if MDK_CONF_HC128 == 1
|
||||||
|
#define HAVE_HC128
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>RABBIT
|
||||||
|
#define MDK_CONF_RABBIT 1
|
||||||
|
#if MDK_CONF_RABBI == 0
|
||||||
|
#define NO_RABBIT
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>AEAD
|
||||||
|
#define MDK_CONF_AEAD 0
|
||||||
|
#if MDK_CONF_AEAD == 1
|
||||||
|
#define HAVE_AEAD
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>DES3
|
||||||
|
#define MDK_CONF_DES3 1
|
||||||
|
#if MDK_CONF_DES3 == 0
|
||||||
|
#define NO_DES3
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>CAMELLIA
|
||||||
|
#define MDK_CONF_CAMELLIA 0
|
||||||
|
#if MDK_CONF_CAMELLIA == 1
|
||||||
|
#define HAVE_CAMELLIA
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>DH
|
||||||
|
// <i>need this for CYASSL_SERVER, OPENSSL_EXTRA
|
||||||
|
#define MDK_CONF_DH 1
|
||||||
|
#if MDK_CONF_DH == 0
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>DSA
|
||||||
|
#define MDK_CONF_DSA 1
|
||||||
|
#if MDK_CONF_DSA == 0
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>PWDBASED
|
||||||
|
#define MDK_CONF_PWDBASED 1
|
||||||
|
#if MDK_CONF_PWDBASED == 0
|
||||||
|
#define NO_PWDBASED
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>ECC
|
||||||
|
#define MDK_CONF_ECC 0
|
||||||
|
#if MDK_CONF_ECC == 1
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>PSK
|
||||||
|
#define MDK_CONF_PSK 1
|
||||||
|
#if MDK_CONF_PSK == 0
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>AESCCM (Turn off Hardware Crypt)
|
||||||
|
#define MDK_CONF_AESCCM 0
|
||||||
|
#if MDK_CONF_AESCCM == 1
|
||||||
|
#define HAVE_AESCCM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>AESGCM (Turn off Hardware Crypt)
|
||||||
|
#define MDK_CONF_AESGCM 0
|
||||||
|
#if MDK_CONF_AESGCM == 1
|
||||||
|
#define HAVE_AESGCM
|
||||||
|
#define BUILD_AESGCM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>NTRU (need License, "crypto_ntru.h")
|
||||||
|
#define MDK_CONF_NTRU 0
|
||||||
|
#if MDK_CONF_NTRU == 1
|
||||||
|
#define HAVE_NTRU
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <h>Hardware Crypt (See document for usage)
|
||||||
|
// <e>Hardware RNG
|
||||||
|
#define MDK_CONF_STM32F2_RNG 0
|
||||||
|
#if MDK_CONF_STM32F2_RNG == 1
|
||||||
|
#define STM32F2_RNG
|
||||||
|
#else
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Hardware Crypt
|
||||||
|
#define MDK_CONF_STM32F2_CRYPTO 0
|
||||||
|
#if MDK_CONF_STM32F2_CRYPTO == 1
|
||||||
|
#define STM32F2_CRYPTO
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//</h>
|
||||||
|
// <<< end of configuration section >>>
|
144
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Conf/config-CyaSSL.h
Normal file
144
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Conf/config-CyaSSL.h
Normal file
|
@ -0,0 +1,144 @@
|
||||||
|
/* config-RTX-TCP-FS.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**** CyaSSL for KEIL-RL Configuration ****/
|
||||||
|
|
||||||
|
#define __CORTEX_M3__
|
||||||
|
#define CYASSL_MDK_ARM
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_MAIN_DRIVER
|
||||||
|
|
||||||
|
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#define HAVE_NULL_CIPHER
|
||||||
|
|
||||||
|
#define HAVE_KEIL_RTX
|
||||||
|
#define CYASSL_CMSIS_RTOS
|
||||||
|
#define CYASSL_KEIL_TCP_NET
|
||||||
|
|
||||||
|
|
||||||
|
// <<< Use Configuration Wizard in Context Menu >>>
|
||||||
|
// <h> CyaSSL Configuration
|
||||||
|
|
||||||
|
// <h>SSL (Included by default)
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <e>TLS
|
||||||
|
#define MDK_CONF_TLS 1
|
||||||
|
#if MDK_CONF_TLS == 0
|
||||||
|
#define NO_TLS
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
// <e>CRL
|
||||||
|
#define MDK_CONF_DER_LOAD 0
|
||||||
|
#if MDK_CONF_DER_LOAD == 1
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>OpenSSL Extra
|
||||||
|
#define MDK_CONF_OPENSSL_EXTRA 1
|
||||||
|
#if MDK_CONF_OPENSSL_EXTRA == 1
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
//</h>
|
||||||
|
|
||||||
|
// <h>Cert/Key Generation
|
||||||
|
// <e>CertGen
|
||||||
|
#define MDK_CONF_CERT_GEN 0
|
||||||
|
#if MDK_CONF_CERT_GEN == 1
|
||||||
|
#define CYASSL_CERT_GEN
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>KeyGen
|
||||||
|
#define MDK_CONF_KEY_GEN 0
|
||||||
|
#if MDK_CONF_KEY_GEN == 1
|
||||||
|
#define CYASSL_KEY_GEN
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
//</h>
|
||||||
|
|
||||||
|
// <h>Others
|
||||||
|
|
||||||
|
// <e>Inline
|
||||||
|
#define MDK_CONF_INLINE 0
|
||||||
|
#if MDK_CONF_INLINE == 0
|
||||||
|
#define NO_INLINE
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <h>Debug
|
||||||
|
// <e>Debug Message
|
||||||
|
#define MDK_CONF_DebugMessage 0
|
||||||
|
#if MDK_CONF_DebugMessage == 1
|
||||||
|
#define DEBUG_CYASSL
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Check malloc
|
||||||
|
#define MDK_CONF_CheckMalloc 1
|
||||||
|
#if MDK_CONF_CheckMalloc == 1
|
||||||
|
#define CYASSL_MALLOC_CHECK
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
// <e>ErrNo.h
|
||||||
|
#define MDK_CONF_ErrNo 0
|
||||||
|
#if MDK_CONF_ErrNo == 1
|
||||||
|
#define HAVE_ERRNO
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Error Strings
|
||||||
|
#define MDK_CONF_ErrorStrings 1
|
||||||
|
#if MDK_CONF_ErrorStrings == 0
|
||||||
|
#define NO_ERROR_STRINGS
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>zlib (need "zlib.h")
|
||||||
|
#define MDK_CONF_LIBZ 0
|
||||||
|
#if MDK_CONF_LIBZ == 1
|
||||||
|
#define HAVE_LIBZ
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>CAVIUM (need CAVIUM headers)
|
||||||
|
#define MDK_CONF_CAVIUM 0
|
||||||
|
#if MDK_CONF_CAVIUM == 1
|
||||||
|
#define HAVE_CAVIUM
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Small Stack
|
||||||
|
#define MDK_CONF_SmallStack 1
|
||||||
|
#if MDK_CONF_SmallStack == 0
|
||||||
|
#define NO_CYASSL_SMALL_STACK
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// <e>Use Fast Math
|
||||||
|
#define MDK_CONF_FASTMATH 0
|
||||||
|
#if MDK_CONF_FASTMATH == 1
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#endif
|
||||||
|
// </e>
|
||||||
|
// </h>
|
||||||
|
|
||||||
|
// <<< end of configuration section >>>
|
|
@ -0,0 +1 @@
|
||||||
|
<meta http-equiv="Refresh" content="0; URL=http://wolfssl.com/yaSSL/Docs-cyassl-manual-toc.html">
|
|
@ -0,0 +1 @@
|
||||||
|
<meta http-equiv="Refresh" content="0; URL=http://wolfssl.com/yaSSL/Docs-cyassl-manual-10-ctaocrypt-usage-reference.html">
|
39
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Inc/cert_data.h
Normal file
39
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Inc/cert_data.h
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#ifndef CYASSL_CERT_DATA_H
|
||||||
|
#define CYASSL_CERT_DATA_H
|
||||||
|
|
||||||
|
#ifdef USE_CERT_BUFFERS_1024
|
||||||
|
extern const unsigned char client_key_der_1024[] ;
|
||||||
|
extern int sizeof_client_key_der_1024 ;
|
||||||
|
/* ./certs/1024/client-cert.der, 1024-bit */
|
||||||
|
extern const unsigned char client_cert_der_1024[] ;
|
||||||
|
extern int sizeof_client_cert_der_1024 ;
|
||||||
|
/* ./certs/1024/dh1024.der, 1024-bit */
|
||||||
|
extern const unsigned char dh_key_der_1024[] ;
|
||||||
|
extern int sizeof_dh_key_der_1024 ;
|
||||||
|
/* ./certs/1024/dsa1024.der, 1024-bit */
|
||||||
|
extern const unsigned char dsa_key_der_1024[] ;
|
||||||
|
extern int sizeof_dsa_key_der_1024 ;
|
||||||
|
/* ./certs/1024/rsa1024.der, 1024-bit */
|
||||||
|
extern const unsigned char rsa_key_der_1024[] ;
|
||||||
|
extern int sizeof_rsa_key_der_1024 ;
|
||||||
|
|
||||||
|
#elif defined(USE_CERT_BUFFERS_2048)
|
||||||
|
/* ./certs/client-key.der, 2048-bit */
|
||||||
|
extern const unsigned char client_key_der_2048[] ;
|
||||||
|
extern int sizeof_client_key_der_2048 ;
|
||||||
|
/* ./certs/client-cert.der, 2048-bit */
|
||||||
|
extern const unsigned char client_cert_der_2048[] ;
|
||||||
|
extern int sizeof_client_cert_der_2048 ;
|
||||||
|
/* ./certs/dh2048.der, 2048-bit */
|
||||||
|
extern const unsigned char dh_key_der_2048[] ;
|
||||||
|
extern int sizeof_dh_key_der_2048 ;
|
||||||
|
/* ./certs/dsa2048.der, 2048-bit */
|
||||||
|
extern const unsigned char dsa_key_der_2048[] ;
|
||||||
|
extern int sizeof_dsa_key_der_2048;
|
||||||
|
/* ./certs/rsa2048.der, 2048-bit */
|
||||||
|
extern const unsigned char rsa_key_der_2048[] ;
|
||||||
|
extern int sizeof_rsa_key_der_2048 ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
62
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Inc/config.h
Normal file
62
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Inc/config.h
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
/* config.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define __CORTEX_M3__
|
||||||
|
#define CYASSL_MDK_ARM
|
||||||
|
#define CYASSL_MDK5
|
||||||
|
#define CYASSL_CMSIS_RTOS
|
||||||
|
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define BENCH_EMBEDDED
|
||||||
|
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#define HAVE_NULL_CIPHER
|
||||||
|
#define NO_MAIN_DRIVER
|
||||||
|
|
||||||
|
#if defined(MDK_CONF_CYASSL)
|
||||||
|
#define CYASSL_MDK_SHELL
|
||||||
|
#include "config-Crypt.h"
|
||||||
|
#include "config-CyaSSL.h"
|
||||||
|
#elif defined(MDK_CONF_SimpleClient)
|
||||||
|
#include "config-Crypt.h"
|
||||||
|
#include "config-CyaSSL.h"
|
||||||
|
#elif defined(MDK_CONF_SimpleServer)
|
||||||
|
#include "config-Crypt.h"
|
||||||
|
#include "config-CyaSSL.h"
|
||||||
|
#elif defined(MDK_CONF_EchoClient)
|
||||||
|
#include "config-Crypt.h"
|
||||||
|
#include "config-CyaSSL.h"
|
||||||
|
#elif defined(MDK_CONF_EchoServer)
|
||||||
|
#include "config-Crypt.h"
|
||||||
|
#include "config-CyaSSL.h"
|
||||||
|
#elif defined(MDK_CONF_Benchmark)
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define NO_INLINE
|
||||||
|
#include "config-Crypt.h"
|
||||||
|
#elif defined(MDK_CONF_CryptTest)
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define NO_INLINE
|
||||||
|
#include "config-Crypt.h"
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
106
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Inc/cyassl_MDK_ARM.h
Normal file
106
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Inc/cyassl_MDK_ARM.h
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
/* cyassl_KEIL_RL.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
/** This file is for defining types, values for specific to KEIL-MDK-ARM. **/
|
||||||
|
/******************************************************************************/
|
||||||
|
#ifndef CYASSL_KEIL_RL_H
|
||||||
|
#define CYASSL_KEIL_RL_H
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* Go to STDIN */
|
||||||
|
#define fgets(buff, sz, fd) Cyassl_fgets(buff, sz, fd)
|
||||||
|
extern char * Cyassl_fgets ( char * str, int num, FILE * f ) ;
|
||||||
|
|
||||||
|
#define SOCKET_T int
|
||||||
|
|
||||||
|
/*** #include <socket.h> ***/
|
||||||
|
#define NUMBITSPERBYTE 8
|
||||||
|
#define FD_SETSIZE 10
|
||||||
|
|
||||||
|
typedef long fd_mask;
|
||||||
|
#define NFDBITS (sizeof(fd_mask) * NUMBITSPERBYTE) /* bits per mask */
|
||||||
|
|
||||||
|
typedef struct fd_set {
|
||||||
|
fd_mask fds_bits[(FD_SETSIZE + NFDBITS - 1) / NFDBITS];
|
||||||
|
} fd_set;
|
||||||
|
|
||||||
|
/*** #include <sys/types.h> ***/
|
||||||
|
struct timeval {
|
||||||
|
long tv_sec; /* seconds */
|
||||||
|
long tv_usec; /* microseconds */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(CYASSL_KEIL_TCP_NET)
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK5)
|
||||||
|
#define SCK_EWOULDBLOCK BSD_ERROR_WOULDBLOCK
|
||||||
|
#define SCK_ETIMEOUT BSD_ERROR_TIMEOUT
|
||||||
|
#include "rl_net.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef int socklen_t ;
|
||||||
|
|
||||||
|
/* for avoiding conflict with KEIL-TCPnet BSD socket */
|
||||||
|
/* Bodies are in cyassl_KEIL_RL.c */
|
||||||
|
#define connect Cyassl_connect
|
||||||
|
#define accept Cyassl_accept
|
||||||
|
#define recv Cyassl_recv
|
||||||
|
#define send Cyassl_send
|
||||||
|
#define sleep Cyassl_sleep
|
||||||
|
|
||||||
|
/* for avoiding conflicting with KEIL-TCPnet TCP socket */
|
||||||
|
/* Bodies are in test.h */
|
||||||
|
#define tcp_connect Cyassl_tcp_connect
|
||||||
|
#define tcp_socket Cyassl_tcp_soket
|
||||||
|
#define tcp_listen Cyassl_tcp_listen
|
||||||
|
#define tcp_select Cyassl_tcp_select
|
||||||
|
|
||||||
|
extern int Cyassl_connect(int sd, const struct sockaddr * sa, int sz) ;
|
||||||
|
extern int Cyassl_accept(int sd, struct sockaddr *addr, socklen_t *addrlen);
|
||||||
|
extern int Cyassl_recv(int sd, void *buf, size_t len, int flags);
|
||||||
|
extern int Cyassl_send(int sd, const void *buf, size_t len, int flags);
|
||||||
|
extern void Cyassl_sleep(int sec) ;
|
||||||
|
extern int Cyassl_tcp_select(int sd, int timeout) ;
|
||||||
|
|
||||||
|
/** KEIL-RL TCPnet ****/
|
||||||
|
/* TCPnet BSD socket does not have following functions. */
|
||||||
|
extern char *inet_ntoa(struct in_addr in);
|
||||||
|
extern unsigned long inet_addr(const char *cp);
|
||||||
|
extern int setsockopt(int sockfd, int level, int optname,
|
||||||
|
const void *optval, socklen_t optlen);
|
||||||
|
extern int select(int nfds, fd_set *readfds, fd_set *writefds,
|
||||||
|
fd_set *exceptfds, const struct timeval *timeout);
|
||||||
|
|
||||||
|
#endif /* CYASSL_KEIL_TCP_NET */
|
||||||
|
|
||||||
|
|
||||||
|
/* CyaSSL MDK-ARM time functions */
|
||||||
|
#include <time.h>
|
||||||
|
struct tm *Cyassl_MDK_gmtime(const time_t *c) ;
|
||||||
|
extern double current_time(void) ;
|
||||||
|
|
||||||
|
#endif /* CYASSL_KEIL_RL_H */
|
|
@ -0,0 +1,15 @@
|
||||||
|
This program is a simple benchmark of wolfCrypt library.
|
||||||
|
|
||||||
|
In order to run this benchmark, copy
|
||||||
|
{PACK}\wolfSSL\CyaSSL\{version}\cyassl\certs folder and files to the SD memory.
|
||||||
|
|
||||||
|
For benchmark configuration, refer config-Crypt.h.
|
||||||
|
|
||||||
|
For the hardware crypt on config-Crypt.h, download
|
||||||
|
STSW-STM32062: STM32F2xx standard peripherals library at
|
||||||
|
http://www.st.com/. Copy Libraries\STM32F2xx_StdPeriph_Driver\{inc,src} to
|
||||||
|
{PACK}\cyassl\IDE\MDK5-ARM\STM32F2xx_StdPeriph_Lib
|
||||||
|
|
||||||
|
Support
|
||||||
|
-------
|
||||||
|
Please send questions or comments to support@wolfssl.com
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,945 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
|
||||||
|
|
||||||
|
<SchemaVersion>2.1</SchemaVersion>
|
||||||
|
|
||||||
|
<Header>### uVision Project, (C) Keil Software</Header>
|
||||||
|
|
||||||
|
<Targets>
|
||||||
|
<Target>
|
||||||
|
<TargetName>CryptBenchmark</TargetName>
|
||||||
|
<ToolsetNumber>0x4</ToolsetNumber>
|
||||||
|
<ToolsetName>ARM-ADS</ToolsetName>
|
||||||
|
<TargetOption>
|
||||||
|
<TargetCommonOption>
|
||||||
|
<Device>STM32F207IG</Device>
|
||||||
|
<Vendor>STMicroelectronics</Vendor>
|
||||||
|
<Cpu>IRAM(0x20000000,0x20000) IROM(0x08000000,0x100000) CPUTYPE("Cortex-M3") CLOCK(120000000) ELITTLE</Cpu>
|
||||||
|
<FlashUtilSpec></FlashUtilSpec>
|
||||||
|
<StartupFile></StartupFile>
|
||||||
|
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F2xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F207IG$Flash\STM32F2xx_1024.flm))</FlashDriverDll>
|
||||||
|
<DeviceId>0</DeviceId>
|
||||||
|
<RegisterFile>$$Device:STM32F207IG$Device\Include\stm32f2xx.h</RegisterFile>
|
||||||
|
<MemoryEnv></MemoryEnv>
|
||||||
|
<Cmp></Cmp>
|
||||||
|
<Asm></Asm>
|
||||||
|
<Linker></Linker>
|
||||||
|
<OHString></OHString>
|
||||||
|
<InfinionOptionDll></InfinionOptionDll>
|
||||||
|
<SLE66CMisc></SLE66CMisc>
|
||||||
|
<SLE66AMisc></SLE66AMisc>
|
||||||
|
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||||
|
<SFDFile>$$Device:STM32F207IG$SVD\STM32F20x.svd</SFDFile>
|
||||||
|
<bCustSvd>0</bCustSvd>
|
||||||
|
<UseEnv>0</UseEnv>
|
||||||
|
<BinPath></BinPath>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
<LibPath></LibPath>
|
||||||
|
<RegisterFilePath></RegisterFilePath>
|
||||||
|
<DBRegisterFilePath></DBRegisterFilePath>
|
||||||
|
<TargetStatus>
|
||||||
|
<Error>0</Error>
|
||||||
|
<ExitCodeStop>0</ExitCodeStop>
|
||||||
|
<ButtonStop>0</ButtonStop>
|
||||||
|
<NotGenerated>0</NotGenerated>
|
||||||
|
<InvalidFlash>1</InvalidFlash>
|
||||||
|
</TargetStatus>
|
||||||
|
<OutputDirectory>.\Object\</OutputDirectory>
|
||||||
|
<OutputName>CryptBenchmark</OutputName>
|
||||||
|
<CreateExecutable>1</CreateExecutable>
|
||||||
|
<CreateLib>0</CreateLib>
|
||||||
|
<CreateHexFile>0</CreateHexFile>
|
||||||
|
<DebugInformation>1</DebugInformation>
|
||||||
|
<BrowseInformation>1</BrowseInformation>
|
||||||
|
<ListingPath>.\Object\</ListingPath>
|
||||||
|
<HexFormatSelection>1</HexFormatSelection>
|
||||||
|
<Merge32K>0</Merge32K>
|
||||||
|
<CreateBatchFile>0</CreateBatchFile>
|
||||||
|
<BeforeCompile>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
<nStopU1X>0</nStopU1X>
|
||||||
|
<nStopU2X>0</nStopU2X>
|
||||||
|
</BeforeCompile>
|
||||||
|
<BeforeMake>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
</BeforeMake>
|
||||||
|
<AfterMake>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
</AfterMake>
|
||||||
|
<SelectedForBatchBuild>0</SelectedForBatchBuild>
|
||||||
|
<SVCSIdString></SVCSIdString>
|
||||||
|
</TargetCommonOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>0</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>0</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>0</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>0</PublicsOnly>
|
||||||
|
<StopOnExitCode>3</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<DllOption>
|
||||||
|
<SimDllName>SARMCM3.DLL</SimDllName>
|
||||||
|
<SimDllArguments> -REMAP -MPU</SimDllArguments>
|
||||||
|
<SimDlgDll>DCM.DLL</SimDlgDll>
|
||||||
|
<SimDlgDllArguments>-pCM3</SimDlgDllArguments>
|
||||||
|
<TargetDllName>SARMCM3.DLL</TargetDllName>
|
||||||
|
<TargetDllArguments> -MPU</TargetDllArguments>
|
||||||
|
<TargetDlgDll>TCM.DLL</TargetDlgDll>
|
||||||
|
<TargetDlgDllArguments>-pCM3</TargetDlgDllArguments>
|
||||||
|
</DllOption>
|
||||||
|
<DebugOption>
|
||||||
|
<OPTHX>
|
||||||
|
<HexSelection>1</HexSelection>
|
||||||
|
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||||
|
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||||
|
<HexOffset>0</HexOffset>
|
||||||
|
<Oh166RecLen>16</Oh166RecLen>
|
||||||
|
</OPTHX>
|
||||||
|
<Simulator>
|
||||||
|
<UseSimulator>0</UseSimulator>
|
||||||
|
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||||
|
<RunToMain>1</RunToMain>
|
||||||
|
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||||
|
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||||
|
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||||
|
<RestoreFunctions>1</RestoreFunctions>
|
||||||
|
<RestoreToolbox>1</RestoreToolbox>
|
||||||
|
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
|
||||||
|
</Simulator>
|
||||||
|
<Target>
|
||||||
|
<UseTarget>1</UseTarget>
|
||||||
|
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||||
|
<RunToMain>1</RunToMain>
|
||||||
|
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||||
|
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||||
|
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||||
|
<RestoreFunctions>0</RestoreFunctions>
|
||||||
|
<RestoreToolbox>1</RestoreToolbox>
|
||||||
|
<RestoreTracepoints>1</RestoreTracepoints>
|
||||||
|
<RestoreTracepoints>1</RestoreTracepoints>
|
||||||
|
<RestoreTracepoints>1</RestoreTracepoints>
|
||||||
|
</Target>
|
||||||
|
<RunDebugAfterBuild>0</RunDebugAfterBuild>
|
||||||
|
<TargetSelection>8</TargetSelection>
|
||||||
|
<SimDlls>
|
||||||
|
<CpuDll></CpuDll>
|
||||||
|
<CpuDllArguments></CpuDllArguments>
|
||||||
|
<PeripheralDll></PeripheralDll>
|
||||||
|
<PeripheralDllArguments></PeripheralDllArguments>
|
||||||
|
<InitializationFile></InitializationFile>
|
||||||
|
</SimDlls>
|
||||||
|
<TargetDlls>
|
||||||
|
<CpuDll></CpuDll>
|
||||||
|
<CpuDllArguments></CpuDllArguments>
|
||||||
|
<PeripheralDll></PeripheralDll>
|
||||||
|
<PeripheralDllArguments></PeripheralDllArguments>
|
||||||
|
<InitializationFile></InitializationFile>
|
||||||
|
<Driver>BIN\ULP2CM3.DLL</Driver>
|
||||||
|
</TargetDlls>
|
||||||
|
</DebugOption>
|
||||||
|
<Utilities>
|
||||||
|
<Flash1>
|
||||||
|
<UseTargetDll>1</UseTargetDll>
|
||||||
|
<UseExternalTool>0</UseExternalTool>
|
||||||
|
<RunIndependent>0</RunIndependent>
|
||||||
|
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
|
||||||
|
<Capability>1</Capability>
|
||||||
|
<DriverSelection>4100</DriverSelection>
|
||||||
|
</Flash1>
|
||||||
|
<bUseTDR>1</bUseTDR>
|
||||||
|
<Flash2>BIN\ULP2CM3.DLL</Flash2>
|
||||||
|
<Flash3>"" ()</Flash3>
|
||||||
|
<Flash4></Flash4>
|
||||||
|
<pFcarmOut></pFcarmOut>
|
||||||
|
<pFcarmGrp></pFcarmGrp>
|
||||||
|
<pFcArmRoot></pFcArmRoot>
|
||||||
|
<FcArmLst>0</FcArmLst>
|
||||||
|
</Utilities>
|
||||||
|
<TargetArmAds>
|
||||||
|
<ArmAdsMisc>
|
||||||
|
<GenerateListings>0</GenerateListings>
|
||||||
|
<asHll>1</asHll>
|
||||||
|
<asAsm>1</asAsm>
|
||||||
|
<asMacX>1</asMacX>
|
||||||
|
<asSyms>1</asSyms>
|
||||||
|
<asFals>1</asFals>
|
||||||
|
<asDbgD>1</asDbgD>
|
||||||
|
<asForm>1</asForm>
|
||||||
|
<ldLst>0</ldLst>
|
||||||
|
<ldmm>1</ldmm>
|
||||||
|
<ldXref>1</ldXref>
|
||||||
|
<BigEnd>0</BigEnd>
|
||||||
|
<AdsALst>1</AdsALst>
|
||||||
|
<AdsACrf>1</AdsACrf>
|
||||||
|
<AdsANop>0</AdsANop>
|
||||||
|
<AdsANot>0</AdsANot>
|
||||||
|
<AdsLLst>1</AdsLLst>
|
||||||
|
<AdsLmap>1</AdsLmap>
|
||||||
|
<AdsLcgr>1</AdsLcgr>
|
||||||
|
<AdsLsym>1</AdsLsym>
|
||||||
|
<AdsLszi>1</AdsLszi>
|
||||||
|
<AdsLtoi>1</AdsLtoi>
|
||||||
|
<AdsLsun>1</AdsLsun>
|
||||||
|
<AdsLven>1</AdsLven>
|
||||||
|
<AdsLsxf>1</AdsLsxf>
|
||||||
|
<RvctClst>0</RvctClst>
|
||||||
|
<GenPPlst>0</GenPPlst>
|
||||||
|
<AdsCpuType>"Cortex-M3"</AdsCpuType>
|
||||||
|
<RvctDeviceName></RvctDeviceName>
|
||||||
|
<mOS>0</mOS>
|
||||||
|
<uocRom>0</uocRom>
|
||||||
|
<uocRam>0</uocRam>
|
||||||
|
<hadIROM>1</hadIROM>
|
||||||
|
<hadIRAM>1</hadIRAM>
|
||||||
|
<hadXRAM>0</hadXRAM>
|
||||||
|
<uocXRam>0</uocXRam>
|
||||||
|
<RvdsVP>0</RvdsVP>
|
||||||
|
<hadIRAM2>0</hadIRAM2>
|
||||||
|
<hadIROM2>0</hadIROM2>
|
||||||
|
<StupSel>8</StupSel>
|
||||||
|
<useUlib>0</useUlib>
|
||||||
|
<EndSel>0</EndSel>
|
||||||
|
<uLtcg>0</uLtcg>
|
||||||
|
<RoSelD>3</RoSelD>
|
||||||
|
<RwSelD>3</RwSelD>
|
||||||
|
<CodeSel>0</CodeSel>
|
||||||
|
<OptFeed>0</OptFeed>
|
||||||
|
<NoZi1>0</NoZi1>
|
||||||
|
<NoZi2>0</NoZi2>
|
||||||
|
<NoZi3>0</NoZi3>
|
||||||
|
<NoZi4>0</NoZi4>
|
||||||
|
<NoZi5>0</NoZi5>
|
||||||
|
<Ro1Chk>0</Ro1Chk>
|
||||||
|
<Ro2Chk>0</Ro2Chk>
|
||||||
|
<Ro3Chk>0</Ro3Chk>
|
||||||
|
<Ir1Chk>1</Ir1Chk>
|
||||||
|
<Ir2Chk>0</Ir2Chk>
|
||||||
|
<Ra1Chk>0</Ra1Chk>
|
||||||
|
<Ra2Chk>0</Ra2Chk>
|
||||||
|
<Ra3Chk>0</Ra3Chk>
|
||||||
|
<Im1Chk>1</Im1Chk>
|
||||||
|
<Im2Chk>0</Im2Chk>
|
||||||
|
<OnChipMemories>
|
||||||
|
<Ocm1>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm1>
|
||||||
|
<Ocm2>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm2>
|
||||||
|
<Ocm3>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm3>
|
||||||
|
<Ocm4>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm4>
|
||||||
|
<Ocm5>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm5>
|
||||||
|
<Ocm6>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm6>
|
||||||
|
<IRAM>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x20000000</StartAddress>
|
||||||
|
<Size>0x20000</Size>
|
||||||
|
</IRAM>
|
||||||
|
<IROM>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x8000000</StartAddress>
|
||||||
|
<Size>0x100000</Size>
|
||||||
|
</IROM>
|
||||||
|
<XRAM>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</XRAM>
|
||||||
|
<OCR_RVCT1>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT1>
|
||||||
|
<OCR_RVCT2>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT2>
|
||||||
|
<OCR_RVCT3>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT3>
|
||||||
|
<OCR_RVCT4>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x8000000</StartAddress>
|
||||||
|
<Size>0x100000</Size>
|
||||||
|
</OCR_RVCT4>
|
||||||
|
<OCR_RVCT5>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT5>
|
||||||
|
<OCR_RVCT6>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT6>
|
||||||
|
<OCR_RVCT7>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT7>
|
||||||
|
<OCR_RVCT8>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT8>
|
||||||
|
<OCR_RVCT9>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x20000000</StartAddress>
|
||||||
|
<Size>0x20000</Size>
|
||||||
|
</OCR_RVCT9>
|
||||||
|
<OCR_RVCT10>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT10>
|
||||||
|
</OnChipMemories>
|
||||||
|
<RvctStartVector></RvctStartVector>
|
||||||
|
</ArmAdsMisc>
|
||||||
|
<Cads>
|
||||||
|
<interw>1</interw>
|
||||||
|
<Optim>4</Optim>
|
||||||
|
<oTime>0</oTime>
|
||||||
|
<SplitLS>0</SplitLS>
|
||||||
|
<OneElfS>0</OneElfS>
|
||||||
|
<Strict>0</Strict>
|
||||||
|
<EnumInt>0</EnumInt>
|
||||||
|
<PlainCh>0</PlainCh>
|
||||||
|
<Ropi>0</Ropi>
|
||||||
|
<Rwpi>0</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>0</uThumb>
|
||||||
|
<uSurpInc>0</uSurpInc>
|
||||||
|
<uC99>0</uC99>
|
||||||
|
<useXO>0</useXO>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define>HAVE_CONFIG_H MDK_CONF_Benchmark</Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
<Aads>
|
||||||
|
<interw>1</interw>
|
||||||
|
<Ropi>0</Ropi>
|
||||||
|
<Rwpi>0</Rwpi>
|
||||||
|
<thumb>0</thumb>
|
||||||
|
<SplitLS>0</SplitLS>
|
||||||
|
<SwStkChk>0</SwStkChk>
|
||||||
|
<NoWarn>0</NoWarn>
|
||||||
|
<uSurpInc>0</uSurpInc>
|
||||||
|
<useXO>0</useXO>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Aads>
|
||||||
|
<LDads>
|
||||||
|
<umfTarg>1</umfTarg>
|
||||||
|
<Ropi>0</Ropi>
|
||||||
|
<Rwpi>0</Rwpi>
|
||||||
|
<noStLib>0</noStLib>
|
||||||
|
<RepFail>1</RepFail>
|
||||||
|
<useFile>0</useFile>
|
||||||
|
<TextAddressRange>0x08000000</TextAddressRange>
|
||||||
|
<DataAddressRange>0x20000000</DataAddressRange>
|
||||||
|
<pXoBase></pXoBase>
|
||||||
|
<ScatterFile></ScatterFile>
|
||||||
|
<IncludeLibs></IncludeLibs>
|
||||||
|
<IncludeLibsPath></IncludeLibsPath>
|
||||||
|
<Misc></Misc>
|
||||||
|
<LinkerInputFile></LinkerInputFile>
|
||||||
|
<DisabledWarnings></DisabledWarnings>
|
||||||
|
</LDads>
|
||||||
|
</TargetArmAds>
|
||||||
|
</TargetOption>
|
||||||
|
<Groups>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Source</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>main.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\main.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>benchmark.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\benchmark.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Configuration</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>config-Crypt.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>.\RTE\wolfSSL\config-Crypt.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>settings.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>.\RTE\wolfSSL\settings.h</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Documentation</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>Abstract.txt</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>.\Abstract.txt</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Devices</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>time-CortexM3-4.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\time-CortexM3-4.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>time-dummy.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\time-dummy.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>::CMSIS</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>RTX_Conf_CM.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>RTE\CMSIS\RTX_Conf_CM.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>RTX_CM3.lib</FileName>
|
||||||
|
<FileType>4</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\ARM\CMSIS\3.20.4\CMSIS_RTX\Lib\ARM\RTX_CM3.lib</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>::Device</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>RTE_Device.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>RTE\Device\STM32F207IG\RTE_Device.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>startup_stm32f2xx.s</FileName>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<FilePath>RTE\Device\STM32F207IG\startup_stm32f2xx.s</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>system_stm32f2xx.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>RTE\Device\STM32F207IG\system_stm32f2xx.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>DMA_STM32F2xx.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\Keil\STM32F2xx_DFP\1.0.7\RTE_Driver\DMA_STM32F2xx.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>GPIO_STM32F2xx.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\Keil\STM32F2xx_DFP\1.0.7\RTE_Driver\GPIO_STM32F2xx.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>::Drivers</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>MCI_STM32F2xx.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\Keil\STM32F2xx_DFP\1.0.7\RTE_Driver\MCI_STM32F2xx.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>::File System</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>FS_Config.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>RTE\File_System\FS_Config.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>FS_Config_MC_0.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>RTE\File_System\FS_Config_MC_0.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>FS_LFN_CM3_L.lib</FileName>
|
||||||
|
<FileType>4</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\Keil\MDK-Middleware\5.1.4\FileSystem\Lib\ARM\FS_LFN_CM3_L.lib</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>::wolfSSL</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>config-Crypt.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>RTE\wolfSSL\config-Crypt.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>settings.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>RTE\wolfSSL\settings.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>cyassl_MDK_ARM.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\IDE\MDK5-ARM\Src\cyassl_MDK_ARM.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>ssl-dummy.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\IDE\MDK5-ARM\Src\ssl-dummy.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>aes.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\aes.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>arc4.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\arc4.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>asm.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\asm.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>asn.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\asn.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>blake2b.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\blake2b.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>camellia.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\camellia.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>coding.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\coding.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>compress.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\compress.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>des3.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\des3.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>dh.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\dh.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>dsa.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\dsa.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>ecc.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\ecc.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>ecc_fp.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\ecc_fp.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>error.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\error.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>hc128.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\hc128.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>hmac.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\hmac.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>integer.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\integer.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>logging.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\logging.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>md2.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\md2.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>md4.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\md4.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>md5.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\md5.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>memory.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\memory.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>misc.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\misc.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>wc_port.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\wc_port.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>pwdbased.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\pwdbased.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>rabbit.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\rabbit.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>random.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\random.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>ripemd.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\ripemd.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>rsa.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\rsa.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>sha.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\sha.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>sha256.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\sha256.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>sha512.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\sha512.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>tfm.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\tfm.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
</Groups>
|
||||||
|
</Target>
|
||||||
|
</Targets>
|
||||||
|
|
||||||
|
<RTE>
|
||||||
|
<apis>
|
||||||
|
<api Cclass="CMSIS" Cgroup="RTOS" exclusive="0">
|
||||||
|
<package name="CMSIS" url="http://www.keil.com/pack/" vendor="ARM" version="3.20.1"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</api>
|
||||||
|
<api Cclass="Drivers" Cgroup="MCI" exclusive="0">
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</api>
|
||||||
|
</apis>
|
||||||
|
<components>
|
||||||
|
<component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="3.20.0" condition="CMSIS Core">
|
||||||
|
<package name="CMSIS" url="http://www.keil.com/pack/" vendor="ARM" version="3.20.1"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX" Cvendor="ARM" Cversion="4.74.0" condition="CMSIS Core">
|
||||||
|
<package name="CMSIS" schemaVersion="1.0" url="http://www.keil.com/pack/" vendor="ARM" version="3.20.4"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="File System" Cgroup="CORE" Cvariant="LFN" Cvendor="Keil" Cversion="5.0.5" condition="CMSIS Core with RTOS">
|
||||||
|
<package name="MDK-Middleware" schemaVersion="1.0" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.4"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="File System" Cgroup="Drive" Csub="Memory Card" Cvendor="Keil" Cversion="5.0.5" condition="File System and MCI Driver" maxInstances="2">
|
||||||
|
<package name="MDK-Middleware" schemaVersion="1.0" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.4"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cclass="Device" Cgroup="DMA" Cvendor="Keil" Cversion="1.0.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS Device">
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.3"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cclass="Device" Cgroup="GPIO" Cvendor="Keil" Cversion="1.0.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS Device">
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.3"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS Device">
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.3"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cclass="Drivers" Cgroup="MCI" Cvendor="Keil" Cversion="1.01.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS RTOS GPIO DMA">
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.4"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core">
|
||||||
|
<package license="cyassl\IDE\MDK5-ARM\Docs\CyaSSL-Licnese.txt" name="CyaSSL" schemaVersion="1.0" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfCrypt" Csub="Dummy" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core">
|
||||||
|
<package license="cyassl\IDE\MDK5-ARM\Docs\CyaSSL-Licnese.txt" name="CyaSSL" schemaVersion="1.0" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
</components>
|
||||||
|
<files>
|
||||||
|
<file attr="config" category="source" name="CMSIS_RTX\Templates\RTX_Conf_CM.c">
|
||||||
|
<instance index="0">RTE\CMSIS\RTX_Conf_CM.c</instance>
|
||||||
|
<component Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX" Cvendor="ARM" Cversion="4.74.0" condition="CMSIS Core"/>
|
||||||
|
<package name="CMSIS" schemaVersion="1.0" url="http://www.keil.com/pack/" vendor="ARM" version="3.20.4"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="RTE_Driver\Config\RTE_Device.h">
|
||||||
|
<instance index="0">RTE\Device\STM32F207IG\RTE_Device.h</instance>
|
||||||
|
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS Device"/>
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.4"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Device\Source\ARM\startup_stm32f2xx.s">
|
||||||
|
<instance index="0">RTE\Device\STM32F207IG\startup_stm32f2xx.s</instance>
|
||||||
|
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS Device"/>
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.4"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Device\Source\system_stm32f2xx.c">
|
||||||
|
<instance index="0">RTE\Device\STM32F207IG\system_stm32f2xx.c</instance>
|
||||||
|
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS Device"/>
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.4"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="FileSystem\Config\FS_Config.c">
|
||||||
|
<instance index="0">RTE\File_System\FS_Config.c</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="File System" Cgroup="CORE" Cvariant="LFN" Cvendor="Keil" Cversion="5.0.4" condition="CMSIS Core with RTOS"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.2"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="FileSystem\Config\FS_Config_MC.h">
|
||||||
|
<instance index="0">RTE\File_System\FS_Config_MC_0.h</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="File System" Cgroup="Drive" Csub="Memory Card" Cvendor="Keil" Cversion="5.0.4" condition="File System and MCI Driver" maxInstances="2"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.2"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Config.c">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Config.c</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="CORE" Cvariant="Debug" Cvendor="Keil" Cversion="5.0.2" condition="CMSIS Core with RTOS"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Config_BSD.h">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Config_BSD.h</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="Socket" Csub="BSD" Cvendor="Keil" Cversion="5.0.2" condition="Network UDP/TCP"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Config_DNS_Client.h">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Config_DNS_Client.h</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="Service" Csub="DNS Client" Cvendor="Keil" Cversion="5.0.2" condition="Network UDP"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Config_ETH.h">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Config_ETH_0.h</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="Interface" Csub="ETH" Cvendor="Keil" Cversion="5.0.2" condition="Network Driver ETH" maxInstances="1"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Config_TCP.h">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Config_TCP.h</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="Socket" Csub="TCP" Cvendor="Keil" Cversion="5.0.2" condition="Network Interface"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Config_UDP.h">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Config_UDP.h</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="Socket" Csub="UDP" Cvendor="Keil" Cversion="5.0.2" condition="Network Interface"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Debug.c">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Debug.c</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="CORE" Cvariant="Debug" Cvendor="Keil" Cversion="5.0.2" condition="CMSIS Core with RTOS"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\IDE\MDK5-ARM\MDK-ARM\CyaSSL\config-Crypt.h">
|
||||||
|
<instance index="0" removed="1">RTE\Other\config-Crypt.h</instance>
|
||||||
|
<component Cclass="Other" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="2.7.0" condition="wolfCrypt-Core"/>
|
||||||
|
<package name="CyaSSL" url="http://www.wolfSSL.com/keil/pack/" vendor="wolfSSL" version="2.7.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\IDE\MDK5-ARM\MDK-ARM\CyaSSL\config-FS.h">
|
||||||
|
<instance index="0" removed="1">RTE\Other\config-FS.h</instance>
|
||||||
|
<component Cclass="Other" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="2.7.0" condition="wolfCrypt-Core"/>
|
||||||
|
<package name="CyaSSL" url="http://www.wolfSSL.com/keil/pack/" vendor="wolfSSL" version="2.7.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\IDE\MDK5-ARM\MDK-ARM\CyaSSL\config-RTX-TCP-FS.h">
|
||||||
|
<instance index="0" removed="1">RTE\Other\config-RTX-TCP-FS.h</instance>
|
||||||
|
<component Cclass="Other" Cgroup="CyaSSL" Csub="RTX,TCP,FS" Cvendor="wolfSSL" Cversion="2.7.0" condition="CyaSSL-RTX,TCP,FS"/>
|
||||||
|
<package name="CyaSSL" url="http://www.wolfSSL.com/keil/pack/" vendor="wolfSSL" version="2.7.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\IDE\MDK5-ARM\MDK-ARM\CyaSSL\config.h">
|
||||||
|
<instance index="0" removed="1">RTE\Other\config.h</instance>
|
||||||
|
<component Cclass="Other" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="2.7.0" condition="wolfCrypt-Core"/>
|
||||||
|
<package name="CyaSSL" url="http://www.wolfSSL.com/keil/pack/" vendor="wolfSSL" version="2.7.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\IDE\MDK5-ARM\Conf\config-Crypt.h">
|
||||||
|
<instance index="0">RTE\wolfSSL\config-Crypt.h</instance>
|
||||||
|
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core"/>
|
||||||
|
<package license="cyassl\IDE\MDK5-ARM\Docs\CyaSSL-License.txt" name="CyaSSL" schemaVersion="1.0" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\IDE\MDK5-ARM\MDK-ARM\CyaSSL\config.h">
|
||||||
|
<instance index="0" removed="1">RTE\wolfSSL\config.h</instance>
|
||||||
|
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core"/>
|
||||||
|
<package license="cyassl\IDE\MDK5-ARM\Docs\CyaSSL-Licnese.txt" name="CyaSSL" schemaVersion="1.0" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\cyassl\ctaocrypt\settings.h">
|
||||||
|
<instance index="0">RTE\wolfSSL\settings.h</instance>
|
||||||
|
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core"/>
|
||||||
|
<package license="cyassl\IDE\MDK5-ARM\Docs\CyaSSL-License.txt" name="CyaSSL" schemaVersion="1.0" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptBenchmark"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
</files>
|
||||||
|
</RTE>
|
||||||
|
|
||||||
|
</Project>
|
|
@ -0,0 +1,667 @@
|
||||||
|
/* settings.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Place OS specific preprocessor flags, defines, includes here, will be
|
||||||
|
included into every file because types.h includes it */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef CTAO_CRYPT_SETTINGS_H
|
||||||
|
#define CTAO_CRYPT_SETTINGS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Uncomment next line if using IPHONE */
|
||||||
|
/* #define IPHONE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using ThreadX */
|
||||||
|
/* #define THREADX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Micrium ucOS */
|
||||||
|
/* #define MICRIUM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Mbed */
|
||||||
|
/* #define MBED */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip PIC32 ethernet starter kit */
|
||||||
|
/* #define MICROCHIP_PIC32 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 5 */
|
||||||
|
/* #define MICROCHIP_TCPIP_V5 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 6 or later */
|
||||||
|
/* #define MICROCHIP_TCPIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if using PIC32MZ Crypto Engine */
|
||||||
|
/* #define CYASSL_MICROCHIP_PIC32MZ */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS */
|
||||||
|
/* #define FREERTOS */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS Windows Simulator */
|
||||||
|
/* #define FREERTOS_WINSIM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using RTIP */
|
||||||
|
/* #define EBSNET */
|
||||||
|
|
||||||
|
/* Uncomment next line if using lwip */
|
||||||
|
/* #define CYASSL_LWIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for a game console */
|
||||||
|
/* #define CYASSL_GAME_BUILD */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for LSR */
|
||||||
|
/* #define CYASSL_LSR */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for Freescale MQX/RTCS/MFS */
|
||||||
|
/* #define FREESCALE_MQX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using STM32F2 */
|
||||||
|
/* #define CYASSL_STM32F2 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Comverge settings */
|
||||||
|
/* #define COMVERGE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using QL SEP settings */
|
||||||
|
/* #define CYASSL_QL */
|
||||||
|
|
||||||
|
/* Uncomment next line if using LwIP native TCP socket settings */
|
||||||
|
/* #define HAVE_LWIP_NATIVE */
|
||||||
|
|
||||||
|
/* Uncomment next line if building for EROAD */
|
||||||
|
/* #define CYASSL_EROAD */
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
|
||||||
|
#ifdef IPHONE
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_USER_SETTINGS
|
||||||
|
#include <user_settings.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef COMVERGE
|
||||||
|
#define THREADX
|
||||||
|
#define HAVE_NETX
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef THREADX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_NETX
|
||||||
|
#include "nx_api.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_LWIP_NATIVE) /* using LwIP native TCP socket */
|
||||||
|
#define CYASSL_LWIP
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_PIC32
|
||||||
|
/* #define CYASSL_MICROCHIP_PIC32MZ */
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_MICROCHIP_PIC32MZ
|
||||||
|
#define CYASSL_PIC32MZ_CE
|
||||||
|
#define CYASSL_PIC32MZ_CRYPT
|
||||||
|
#define HAVE_AES_ENGINE
|
||||||
|
#define CYASSL_PIC32MZ_RNG
|
||||||
|
/* #define CYASSL_PIC32MZ_HASH */
|
||||||
|
#define CYASSL_AES_COUNTER
|
||||||
|
#define HAVE_AESGCM
|
||||||
|
#define NO_BIG_INT
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP_V5
|
||||||
|
/* include timer functions */
|
||||||
|
#include "TCPIP Stack/TCPIP.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP
|
||||||
|
/* include timer, NTP functions */
|
||||||
|
#ifdef MICROCHIP_MPLAB_HARMONY
|
||||||
|
#include "tcpip/tcpip.h"
|
||||||
|
#else
|
||||||
|
#include "system/system_services.h"
|
||||||
|
#include "tcpip/sntp.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MBED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define NO_CERT
|
||||||
|
#define USE_CERT_BUFFERS_1024
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define HAVE_ECC
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define CYASSL_CMSIS_RTOS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_EROAD
|
||||||
|
#define FREESCALE_MQX
|
||||||
|
#define FREESCALE_MMCAU
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define NO_STDIO_FILESYSTEM
|
||||||
|
#define CYASSL_LEANPSK
|
||||||
|
#define HAVE_NULL_CIPHER
|
||||||
|
#define NO_OLD_TLS
|
||||||
|
#define NO_ASN
|
||||||
|
#define NO_BIG_INT
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_CERTS
|
||||||
|
#define NO_PWDBASED
|
||||||
|
#define NO_DES3
|
||||||
|
#define NO_MD4
|
||||||
|
#define NO_RC4
|
||||||
|
#define NO_MD5
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define NO_MAIN_DRIVER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREERTOS_WINSIM
|
||||||
|
#define FREERTOS
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Micrium will use Visual Studio for compilation but not the Win32 API */
|
||||||
|
#if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) \
|
||||||
|
&& !defined(EBSNET) && !defined(CYASSL_EROAD)
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(CYASSL_LEANPSK) && !defined(XMALLOC_USER)
|
||||||
|
#include <stdlib.h>
|
||||||
|
#define XMALLOC(s, h, type) malloc((s))
|
||||||
|
#define XFREE(p, h, type) free((p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(XMALLOC_USER) && defined(SSN_BUILDING_LIBYASSL)
|
||||||
|
#undef XMALLOC
|
||||||
|
#define XMALLOC yaXMALLOC
|
||||||
|
#undef XFREE
|
||||||
|
#define XFREE yaXFREE
|
||||||
|
#undef XREALLOC
|
||||||
|
#define XREALLOC yaXREALLOC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FREERTOS
|
||||||
|
#ifndef NO_WRITEV
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
#ifndef NO_SHA512
|
||||||
|
#define NO_SHA512
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DH
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DSA
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
#ifndef NO_HC128
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "semphr.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef EBSNET
|
||||||
|
#include "rtip.h"
|
||||||
|
|
||||||
|
/* #define DEBUG_CYASSL */
|
||||||
|
#define NO_CYASSL_DIR /* tbd */
|
||||||
|
|
||||||
|
#if (POLLOS)
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (RTPLATFORM)
|
||||||
|
#if (!RTP_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if (!KS_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (WINMSP3)
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#else
|
||||||
|
#sslpro: settings.h - please implement SIZEOF_LONG and SIZEOF_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, type) ((void *)rtp_malloc((s), SSL_PRO_MALLOC))
|
||||||
|
#define XFREE(p, h, type) (rtp_free(p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
|
||||||
|
#endif /* EBSNET */
|
||||||
|
|
||||||
|
#ifdef CYASSL_GAME_BUILD
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#if defined(__PPU) || defined(__XENON)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LSR
|
||||||
|
#define HAVE_WEBSERVER
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define CYASSL_LOW_MEMORY
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#define LSR_FS
|
||||||
|
#include "inc/hw_types.h"
|
||||||
|
#include "fs.h"
|
||||||
|
#endif
|
||||||
|
#define CYASSL_LWIP
|
||||||
|
#include <errno.h> /* for tcp errno */
|
||||||
|
#define CYASSL_SAFERTOS
|
||||||
|
#if defined(__IAR_SYSTEMS_ICC__)
|
||||||
|
/* enum uses enum */
|
||||||
|
#pragma diag_suppress=Pa089
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_SAFERTOS
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "SafeRTOS/semphr.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "SafeRTOS/heap.h"
|
||||||
|
#define XMALLOC(s, h, type) pvPortMalloc((s))
|
||||||
|
#define XFREE(p, h, type) vPortFree((p))
|
||||||
|
#define XREALLOC(p, n, h, t) pvPortRealloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LOW_MEMORY
|
||||||
|
#undef RSA_LOW_MEM
|
||||||
|
#define RSA_LOW_MEM
|
||||||
|
#undef CYASSL_SMALL_STACK
|
||||||
|
#define CYASSL_SMALL_STACK
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREESCALE_MQX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#define FREESCALE_K70_RNGA
|
||||||
|
/* #define FREESCALE_K53_RNGB */
|
||||||
|
#include "mqx.h"
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#include "mfs.h"
|
||||||
|
#include "fio.h"
|
||||||
|
#endif
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "mutex.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, t) (void *)_mem_alloc_system((s))
|
||||||
|
#define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));}
|
||||||
|
/* Note: MQX has no realloc, using fastmath above */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_STM32F2
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define STM32F2_RNG
|
||||||
|
#define STM32F2_CRYPTO
|
||||||
|
#define KEIL_INTRINSICS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICRIUM
|
||||||
|
|
||||||
|
#include "stdlib.h"
|
||||||
|
#include "net_cfg.h"
|
||||||
|
#include "ssl_cfg.h"
|
||||||
|
#include "net_secure_os.h"
|
||||||
|
|
||||||
|
#define CYASSL_TYPES
|
||||||
|
|
||||||
|
typedef CPU_INT08U byte;
|
||||||
|
typedef CPU_INT16U word16;
|
||||||
|
typedef CPU_INT32U word32;
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_WORD_SIZE == CPU_WORD_SIZE_32)
|
||||||
|
#define SIZEOF_LONG 4
|
||||||
|
#undef SIZEOF_LONG_LONG
|
||||||
|
#else
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STRING_USER
|
||||||
|
|
||||||
|
#define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr)))
|
||||||
|
#define XSTRNCPY(pstr_dest, pstr_src, len_max) \
|
||||||
|
((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \
|
||||||
|
(CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRNCMP(pstr_1, pstr_2, len_max) \
|
||||||
|
((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \
|
||||||
|
(CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRSTR(pstr, pstr_srch) \
|
||||||
|
((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \
|
||||||
|
(CPU_CHAR *)(pstr_srch)))
|
||||||
|
#define XMEMSET(pmem, data_val, size) \
|
||||||
|
((void)Mem_Set((void *)(pmem), (CPU_INT08U) (data_val), \
|
||||||
|
(CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \
|
||||||
|
(void *)(psrc), (CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCMP(pmem_1, pmem_2, size) \
|
||||||
|
(((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), (void *)(pmem_2), \
|
||||||
|
(CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES)
|
||||||
|
#define XMEMMOVE XMEMCPY
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
|
||||||
|
#define MICRIUM_MALLOC
|
||||||
|
#define XMALLOC(s, h, type) ((void *)NetSecure_BlkGet((CPU_INT08U)(type), \
|
||||||
|
(CPU_SIZE_T)(s), (void *)0))
|
||||||
|
#define XFREE(p, h, type) (NetSecure_BlkFree((CPU_INT08U)(type), \
|
||||||
|
(p), (void *)0))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_FS_EN == DEF_ENABLED)
|
||||||
|
#undef NO_FILESYSTEM
|
||||||
|
#else
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TRACE_LEVEL == CYASSL_TRACE_LEVEL_DBG)
|
||||||
|
#define DEBUG_CYASSL
|
||||||
|
#else
|
||||||
|
#undef DEBUG_CYASSL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_OPENSSL_EN == DEF_ENABLED)
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#else
|
||||||
|
#undef OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MULTI_THREAD_EN == DEF_ENABLED)
|
||||||
|
#undef SINGLE_THREADED
|
||||||
|
#else
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DH_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DH
|
||||||
|
#else
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DSA_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DSA
|
||||||
|
#else
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_PSK_EN == DEF_ENABLED)
|
||||||
|
#undef NO_PSK
|
||||||
|
#else
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_3DES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DES
|
||||||
|
#else
|
||||||
|
#define NO_DES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_AES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_AES
|
||||||
|
#else
|
||||||
|
#define NO_AES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RC4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RC4
|
||||||
|
#else
|
||||||
|
#define NO_RC4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RABBIT_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RABBIT
|
||||||
|
#else
|
||||||
|
#define NO_RABBIT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_HC128_EN == DEF_ENABLED)
|
||||||
|
#undef NO_HC128
|
||||||
|
#else
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#else
|
||||||
|
#undef BIG_ENDIAN_ORDER
|
||||||
|
#define LITTLE_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MD4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_MD4
|
||||||
|
#else
|
||||||
|
#define NO_MD4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_WRITEV_EN == DEF_ENABLED)
|
||||||
|
#undef NO_WRITEV
|
||||||
|
#else
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_RNG_SEED_EN == DEF_ENABLED)
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#else
|
||||||
|
#undef NO_DEV_RANDOM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_IO_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#else
|
||||||
|
#undef CYASSL_USER_IO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DYNAMIC_BUFFERS_EN == DEF_ENABLED)
|
||||||
|
#undef LARGE_STATIC_BUFFERS
|
||||||
|
#undef STATIC_CHUNKS_ONLY
|
||||||
|
#else
|
||||||
|
#define LARGE_STATIC_BUFFERS
|
||||||
|
#define STATIC_CHUNKS_ONLY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DER_LOAD_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DTLS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DTLS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DTLS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_CALLBACKS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_CALLBACKS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_CALLBACKS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_FAST_MATH_EN == DEF_ENABLED)
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#else
|
||||||
|
#undef USE_FAST_MATH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TFM_TIMING_RESISTANT_EN == DEF_ENABLED)
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#else
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* MICRIUM */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_QL
|
||||||
|
#ifndef CYASSL_SEP
|
||||||
|
#define CYASSL_SEP
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_EXTRA
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_CERTS
|
||||||
|
#define SESSION_CERTS
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_AESCCM
|
||||||
|
#define HAVE_AESCCM
|
||||||
|
#endif
|
||||||
|
#ifndef ATOMIC_USER
|
||||||
|
#define ATOMIC_USER
|
||||||
|
#endif
|
||||||
|
#ifndef CYASSL_DER_LOAD
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
#ifndef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_ECC
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_INDEX
|
||||||
|
#define SESSION_INDEX
|
||||||
|
#endif
|
||||||
|
#endif /* CYASSL_QL */
|
||||||
|
|
||||||
|
|
||||||
|
#if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \
|
||||||
|
!defined(CYASSL_LEANPSK) && !defined(NO_CYASSL_MEMORY)
|
||||||
|
#define USE_CYASSL_MEMORY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS)
|
||||||
|
#undef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* stream ciphers except arc4 need 32bit alignment, intel ok without */
|
||||||
|
#ifndef XSTREAM_ALIGNMENT
|
||||||
|
#if defined(__x86_64__) || defined(__ia64__) || defined(__i386__)
|
||||||
|
#define NO_XSTREAM_ALIGNMENT
|
||||||
|
#else
|
||||||
|
#define XSTREAM_ALIGNMENT
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* if using hardware crypto and have alignment requirements, specify the
|
||||||
|
requirement here. The record header of SSL/TLS will prvent easy alignment.
|
||||||
|
This hint tries to help as much as possible. */
|
||||||
|
#ifndef CYASSL_GENERAL_ALIGNMENT
|
||||||
|
#ifdef CYASSL_AESNI
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 16
|
||||||
|
#elif defined(XSTREAM_ALIGNMENT)
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 4
|
||||||
|
#else
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CRL
|
||||||
|
/* not widely supported yet */
|
||||||
|
#undef NO_SKID
|
||||||
|
#define NO_SKID
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Place any other flags or defines here */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* CTAO_CRYPT_SETTINGS_H */
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,71 @@
|
||||||
|
/* main.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
#include <cyassl/ctaocrypt/logging.h>
|
||||||
|
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#include "rl_fs.h"
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* Initialize a Flash Memory Card
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
static void init_filesystem (void) {
|
||||||
|
int32_t retv;
|
||||||
|
|
||||||
|
retv = finit ("M0:");
|
||||||
|
if (retv == 0) {
|
||||||
|
retv = fmount ("M0:");
|
||||||
|
if (retv == 0) {
|
||||||
|
printf ("Drive M0 ready!\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf ("Drive M0 mount failed!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf ("Drive M0 initialization failed!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
extern void benchmark_test(void * arg) ;
|
||||||
|
extern void init_time(void) ;
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* mian entry
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
void * arg = NULL ;
|
||||||
|
|
||||||
|
init_filesystem ();
|
||||||
|
|
||||||
|
printf("=== Start: Crypt Benchmark ===\n") ;
|
||||||
|
benchmark_test(arg) ;
|
||||||
|
printf("=== End: Crypt Benchmark ===\n") ;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
/* time-STM32F2.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#define DWT ((DWT_Type *) (0xE0001000UL) )
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */
|
||||||
|
uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */
|
||||||
|
} DWT_Type;
|
||||||
|
|
||||||
|
extern uint32_t SystemCoreClock ;
|
||||||
|
|
||||||
|
double current_time(int reset)
|
||||||
|
{
|
||||||
|
if(reset) DWT->CYCCNT = 0 ;
|
||||||
|
return ((double)DWT->CYCCNT/SystemCoreClock) ;
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
/* time-dummy.c.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "time.h"
|
||||||
|
|
||||||
|
struct tm *Cyassl_MDK_gmtime(const time_t *c)
|
||||||
|
{
|
||||||
|
static struct tm date ;
|
||||||
|
return(&date) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
time_t time(time_t * t) { return 0 ; }
|
|
@ -0,0 +1,16 @@
|
||||||
|
This program is a simple test suite of wolfCrypt library.
|
||||||
|
|
||||||
|
In order to run this test suite, copy
|
||||||
|
{PACK}\wolfSSL\CyaSSL\{version}\cyassl\certs folder and files to the SD memory.
|
||||||
|
|
||||||
|
For selecting test crypt algorism options, refer config-Crypt.h.
|
||||||
|
|
||||||
|
For the hardware crypt on config-Crypt.h, download
|
||||||
|
STSW-STM32062: STM32F2xx standard peripherals library at
|
||||||
|
http://www.st.com/. Copy Libraries\STM32F2xx_StdPeriph_Driver\{inc,src} to
|
||||||
|
{PACK}\cyassl\IDE\MDK5-ARM\STM32F2xx_StdPeriph_Lib
|
||||||
|
|
||||||
|
|
||||||
|
Support
|
||||||
|
-------
|
||||||
|
Please send questions or comments to support@wolfssl.com
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,946 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
|
||||||
|
|
||||||
|
<SchemaVersion>2.1</SchemaVersion>
|
||||||
|
|
||||||
|
<Header>### uVision Project, (C) Keil Software</Header>
|
||||||
|
|
||||||
|
<Targets>
|
||||||
|
<Target>
|
||||||
|
<TargetName>CryptTest</TargetName>
|
||||||
|
<ToolsetNumber>0x4</ToolsetNumber>
|
||||||
|
<ToolsetName>ARM-ADS</ToolsetName>
|
||||||
|
<TargetOption>
|
||||||
|
<TargetCommonOption>
|
||||||
|
<Device>STM32F207IG</Device>
|
||||||
|
<Vendor>STMicroelectronics</Vendor>
|
||||||
|
<Cpu>IRAM(0x20000000,0x20000) IROM(0x08000000,0x100000) CPUTYPE("Cortex-M3") CLOCK(120000000) ELITTLE</Cpu>
|
||||||
|
<FlashUtilSpec></FlashUtilSpec>
|
||||||
|
<StartupFile></StartupFile>
|
||||||
|
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F2xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F207IG$Flash\STM32F2xx_1024.flm))</FlashDriverDll>
|
||||||
|
<DeviceId>0</DeviceId>
|
||||||
|
<RegisterFile>$$Device:STM32F207IG$Device\Include\stm32f2xx.h</RegisterFile>
|
||||||
|
<MemoryEnv></MemoryEnv>
|
||||||
|
<Cmp></Cmp>
|
||||||
|
<Asm></Asm>
|
||||||
|
<Linker></Linker>
|
||||||
|
<OHString></OHString>
|
||||||
|
<InfinionOptionDll></InfinionOptionDll>
|
||||||
|
<SLE66CMisc></SLE66CMisc>
|
||||||
|
<SLE66AMisc></SLE66AMisc>
|
||||||
|
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||||
|
<SFDFile>$$Device:STM32F207IG$SVD\STM32F20x.svd</SFDFile>
|
||||||
|
<bCustSvd>0</bCustSvd>
|
||||||
|
<UseEnv>0</UseEnv>
|
||||||
|
<BinPath></BinPath>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
<LibPath></LibPath>
|
||||||
|
<RegisterFilePath></RegisterFilePath>
|
||||||
|
<DBRegisterFilePath></DBRegisterFilePath>
|
||||||
|
<TargetStatus>
|
||||||
|
<Error>0</Error>
|
||||||
|
<ExitCodeStop>0</ExitCodeStop>
|
||||||
|
<ButtonStop>0</ButtonStop>
|
||||||
|
<NotGenerated>0</NotGenerated>
|
||||||
|
<InvalidFlash>1</InvalidFlash>
|
||||||
|
</TargetStatus>
|
||||||
|
<OutputDirectory>.\Object\</OutputDirectory>
|
||||||
|
<OutputName>CryptTest</OutputName>
|
||||||
|
<CreateExecutable>1</CreateExecutable>
|
||||||
|
<CreateLib>0</CreateLib>
|
||||||
|
<CreateHexFile>0</CreateHexFile>
|
||||||
|
<DebugInformation>1</DebugInformation>
|
||||||
|
<BrowseInformation>1</BrowseInformation>
|
||||||
|
<ListingPath>.\Object\</ListingPath>
|
||||||
|
<HexFormatSelection>1</HexFormatSelection>
|
||||||
|
<Merge32K>0</Merge32K>
|
||||||
|
<CreateBatchFile>0</CreateBatchFile>
|
||||||
|
<BeforeCompile>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
<nStopU1X>0</nStopU1X>
|
||||||
|
<nStopU2X>0</nStopU2X>
|
||||||
|
</BeforeCompile>
|
||||||
|
<BeforeMake>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
</BeforeMake>
|
||||||
|
<AfterMake>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
</AfterMake>
|
||||||
|
<SelectedForBatchBuild>0</SelectedForBatchBuild>
|
||||||
|
<SVCSIdString></SVCSIdString>
|
||||||
|
</TargetCommonOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>0</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>0</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>0</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>0</PublicsOnly>
|
||||||
|
<StopOnExitCode>3</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
</CommonProperty>
|
||||||
|
<DllOption>
|
||||||
|
<SimDllName>SARMCM3.DLL</SimDllName>
|
||||||
|
<SimDllArguments>-REMAP -MPU</SimDllArguments>
|
||||||
|
<SimDlgDll>DCM.DLL</SimDlgDll>
|
||||||
|
<SimDlgDllArguments>-pCM3</SimDlgDllArguments>
|
||||||
|
<TargetDllName>SARMCM3.DLL</TargetDllName>
|
||||||
|
<TargetDllArguments>-REMAP -MPU</TargetDllArguments>
|
||||||
|
<TargetDlgDll>TCM.DLL</TargetDlgDll>
|
||||||
|
<TargetDlgDllArguments>-pCM3</TargetDlgDllArguments>
|
||||||
|
</DllOption>
|
||||||
|
<DebugOption>
|
||||||
|
<OPTHX>
|
||||||
|
<HexSelection>1</HexSelection>
|
||||||
|
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||||
|
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||||
|
<HexOffset>0</HexOffset>
|
||||||
|
<Oh166RecLen>16</Oh166RecLen>
|
||||||
|
</OPTHX>
|
||||||
|
<Simulator>
|
||||||
|
<UseSimulator>0</UseSimulator>
|
||||||
|
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||||
|
<RunToMain>1</RunToMain>
|
||||||
|
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||||
|
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||||
|
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||||
|
<RestoreFunctions>1</RestoreFunctions>
|
||||||
|
<RestoreToolbox>1</RestoreToolbox>
|
||||||
|
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
|
||||||
|
</Simulator>
|
||||||
|
<Target>
|
||||||
|
<UseTarget>1</UseTarget>
|
||||||
|
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||||
|
<RunToMain>1</RunToMain>
|
||||||
|
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||||
|
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||||
|
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||||
|
<RestoreFunctions>0</RestoreFunctions>
|
||||||
|
<RestoreToolbox>1</RestoreToolbox>
|
||||||
|
<RestoreTracepoints>1</RestoreTracepoints>
|
||||||
|
<RestoreTracepoints>1</RestoreTracepoints>
|
||||||
|
<RestoreTracepoints>1</RestoreTracepoints>
|
||||||
|
</Target>
|
||||||
|
<RunDebugAfterBuild>0</RunDebugAfterBuild>
|
||||||
|
<TargetSelection>8</TargetSelection>
|
||||||
|
<SimDlls>
|
||||||
|
<CpuDll></CpuDll>
|
||||||
|
<CpuDllArguments></CpuDllArguments>
|
||||||
|
<PeripheralDll></PeripheralDll>
|
||||||
|
<PeripheralDllArguments></PeripheralDllArguments>
|
||||||
|
<InitializationFile></InitializationFile>
|
||||||
|
</SimDlls>
|
||||||
|
<TargetDlls>
|
||||||
|
<CpuDll></CpuDll>
|
||||||
|
<CpuDllArguments></CpuDllArguments>
|
||||||
|
<PeripheralDll></PeripheralDll>
|
||||||
|
<PeripheralDllArguments></PeripheralDllArguments>
|
||||||
|
<InitializationFile></InitializationFile>
|
||||||
|
<Driver>BIN\ULP2CM3.DLL</Driver>
|
||||||
|
</TargetDlls>
|
||||||
|
</DebugOption>
|
||||||
|
<Utilities>
|
||||||
|
<Flash1>
|
||||||
|
<UseTargetDll>1</UseTargetDll>
|
||||||
|
<UseExternalTool>0</UseExternalTool>
|
||||||
|
<RunIndependent>0</RunIndependent>
|
||||||
|
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
|
||||||
|
<Capability>1</Capability>
|
||||||
|
<DriverSelection>4100</DriverSelection>
|
||||||
|
</Flash1>
|
||||||
|
<bUseTDR>1</bUseTDR>
|
||||||
|
<Flash2>BIN\ULP2CM3.DLL</Flash2>
|
||||||
|
<Flash3>"" ()</Flash3>
|
||||||
|
<Flash4></Flash4>
|
||||||
|
<pFcarmOut></pFcarmOut>
|
||||||
|
<pFcarmGrp></pFcarmGrp>
|
||||||
|
<pFcArmRoot></pFcArmRoot>
|
||||||
|
<FcArmLst>0</FcArmLst>
|
||||||
|
</Utilities>
|
||||||
|
<TargetArmAds>
|
||||||
|
<ArmAdsMisc>
|
||||||
|
<GenerateListings>0</GenerateListings>
|
||||||
|
<asHll>1</asHll>
|
||||||
|
<asAsm>1</asAsm>
|
||||||
|
<asMacX>1</asMacX>
|
||||||
|
<asSyms>1</asSyms>
|
||||||
|
<asFals>1</asFals>
|
||||||
|
<asDbgD>1</asDbgD>
|
||||||
|
<asForm>1</asForm>
|
||||||
|
<ldLst>0</ldLst>
|
||||||
|
<ldmm>1</ldmm>
|
||||||
|
<ldXref>1</ldXref>
|
||||||
|
<BigEnd>0</BigEnd>
|
||||||
|
<AdsALst>1</AdsALst>
|
||||||
|
<AdsACrf>1</AdsACrf>
|
||||||
|
<AdsANop>0</AdsANop>
|
||||||
|
<AdsANot>0</AdsANot>
|
||||||
|
<AdsLLst>1</AdsLLst>
|
||||||
|
<AdsLmap>1</AdsLmap>
|
||||||
|
<AdsLcgr>1</AdsLcgr>
|
||||||
|
<AdsLsym>1</AdsLsym>
|
||||||
|
<AdsLszi>1</AdsLszi>
|
||||||
|
<AdsLtoi>1</AdsLtoi>
|
||||||
|
<AdsLsun>1</AdsLsun>
|
||||||
|
<AdsLven>1</AdsLven>
|
||||||
|
<AdsLsxf>1</AdsLsxf>
|
||||||
|
<RvctClst>0</RvctClst>
|
||||||
|
<GenPPlst>0</GenPPlst>
|
||||||
|
<AdsCpuType>"Cortex-M3"</AdsCpuType>
|
||||||
|
<RvctDeviceName></RvctDeviceName>
|
||||||
|
<mOS>0</mOS>
|
||||||
|
<uocRom>0</uocRom>
|
||||||
|
<uocRam>0</uocRam>
|
||||||
|
<hadIROM>1</hadIROM>
|
||||||
|
<hadIRAM>1</hadIRAM>
|
||||||
|
<hadXRAM>0</hadXRAM>
|
||||||
|
<uocXRam>0</uocXRam>
|
||||||
|
<RvdsVP>0</RvdsVP>
|
||||||
|
<hadIRAM2>0</hadIRAM2>
|
||||||
|
<hadIROM2>0</hadIROM2>
|
||||||
|
<StupSel>8</StupSel>
|
||||||
|
<useUlib>0</useUlib>
|
||||||
|
<EndSel>0</EndSel>
|
||||||
|
<uLtcg>0</uLtcg>
|
||||||
|
<RoSelD>3</RoSelD>
|
||||||
|
<RwSelD>3</RwSelD>
|
||||||
|
<CodeSel>0</CodeSel>
|
||||||
|
<OptFeed>0</OptFeed>
|
||||||
|
<NoZi1>0</NoZi1>
|
||||||
|
<NoZi2>0</NoZi2>
|
||||||
|
<NoZi3>0</NoZi3>
|
||||||
|
<NoZi4>0</NoZi4>
|
||||||
|
<NoZi5>0</NoZi5>
|
||||||
|
<Ro1Chk>0</Ro1Chk>
|
||||||
|
<Ro2Chk>0</Ro2Chk>
|
||||||
|
<Ro3Chk>0</Ro3Chk>
|
||||||
|
<Ir1Chk>1</Ir1Chk>
|
||||||
|
<Ir2Chk>0</Ir2Chk>
|
||||||
|
<Ra1Chk>0</Ra1Chk>
|
||||||
|
<Ra2Chk>0</Ra2Chk>
|
||||||
|
<Ra3Chk>0</Ra3Chk>
|
||||||
|
<Im1Chk>1</Im1Chk>
|
||||||
|
<Im2Chk>0</Im2Chk>
|
||||||
|
<OnChipMemories>
|
||||||
|
<Ocm1>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm1>
|
||||||
|
<Ocm2>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm2>
|
||||||
|
<Ocm3>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm3>
|
||||||
|
<Ocm4>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm4>
|
||||||
|
<Ocm5>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm5>
|
||||||
|
<Ocm6>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm6>
|
||||||
|
<IRAM>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x20000000</StartAddress>
|
||||||
|
<Size>0x20000</Size>
|
||||||
|
</IRAM>
|
||||||
|
<IROM>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x8000000</StartAddress>
|
||||||
|
<Size>0x100000</Size>
|
||||||
|
</IROM>
|
||||||
|
<XRAM>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</XRAM>
|
||||||
|
<OCR_RVCT1>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT1>
|
||||||
|
<OCR_RVCT2>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT2>
|
||||||
|
<OCR_RVCT3>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT3>
|
||||||
|
<OCR_RVCT4>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x8000000</StartAddress>
|
||||||
|
<Size>0x100000</Size>
|
||||||
|
</OCR_RVCT4>
|
||||||
|
<OCR_RVCT5>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT5>
|
||||||
|
<OCR_RVCT6>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT6>
|
||||||
|
<OCR_RVCT7>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT7>
|
||||||
|
<OCR_RVCT8>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT8>
|
||||||
|
<OCR_RVCT9>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x20000000</StartAddress>
|
||||||
|
<Size>0x20000</Size>
|
||||||
|
</OCR_RVCT9>
|
||||||
|
<OCR_RVCT10>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</OCR_RVCT10>
|
||||||
|
</OnChipMemories>
|
||||||
|
<RvctStartVector></RvctStartVector>
|
||||||
|
</ArmAdsMisc>
|
||||||
|
<Cads>
|
||||||
|
<interw>1</interw>
|
||||||
|
<Optim>4</Optim>
|
||||||
|
<oTime>0</oTime>
|
||||||
|
<SplitLS>0</SplitLS>
|
||||||
|
<OneElfS>0</OneElfS>
|
||||||
|
<Strict>0</Strict>
|
||||||
|
<EnumInt>0</EnumInt>
|
||||||
|
<PlainCh>0</PlainCh>
|
||||||
|
<Ropi>0</Ropi>
|
||||||
|
<Rwpi>0</Rwpi>
|
||||||
|
<wLevel>0</wLevel>
|
||||||
|
<uThumb>0</uThumb>
|
||||||
|
<uSurpInc>0</uSurpInc>
|
||||||
|
<uC99>0</uC99>
|
||||||
|
<useXO>0</useXO>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define>HAVE_CONFIG_H MDK_CONF_CryptTest</Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Cads>
|
||||||
|
<Aads>
|
||||||
|
<interw>1</interw>
|
||||||
|
<Ropi>0</Ropi>
|
||||||
|
<Rwpi>0</Rwpi>
|
||||||
|
<thumb>0</thumb>
|
||||||
|
<SplitLS>0</SplitLS>
|
||||||
|
<SwStkChk>0</SwStkChk>
|
||||||
|
<NoWarn>0</NoWarn>
|
||||||
|
<uSurpInc>0</uSurpInc>
|
||||||
|
<useXO>0</useXO>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Aads>
|
||||||
|
<LDads>
|
||||||
|
<umfTarg>1</umfTarg>
|
||||||
|
<Ropi>0</Ropi>
|
||||||
|
<Rwpi>0</Rwpi>
|
||||||
|
<noStLib>0</noStLib>
|
||||||
|
<RepFail>1</RepFail>
|
||||||
|
<useFile>0</useFile>
|
||||||
|
<TextAddressRange>0x08000000</TextAddressRange>
|
||||||
|
<DataAddressRange>0x20000000</DataAddressRange>
|
||||||
|
<pXoBase></pXoBase>
|
||||||
|
<ScatterFile></ScatterFile>
|
||||||
|
<IncludeLibs></IncludeLibs>
|
||||||
|
<IncludeLibsPath></IncludeLibsPath>
|
||||||
|
<Misc></Misc>
|
||||||
|
<LinkerInputFile></LinkerInputFile>
|
||||||
|
<DisabledWarnings></DisabledWarnings>
|
||||||
|
</LDads>
|
||||||
|
</TargetArmAds>
|
||||||
|
</TargetOption>
|
||||||
|
<Groups>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Source</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>main.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\main.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>test.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\test.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>cert_data.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\cert_data.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Configuration</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>config-Crypt.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>.\RTE\wolfSSL\config-Crypt.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>settings.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>.\RTE\wolfSSL\settings.h</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Documentation</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>Abstract.txt</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>.\Abstract.txt</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>::CMSIS</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>RTX_Conf_CM.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>RTE\CMSIS\RTX_Conf_CM.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>RTX_CM3.lib</FileName>
|
||||||
|
<FileType>4</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\ARM\CMSIS\3.20.4\CMSIS_RTX\Lib\ARM\RTX_CM3.lib</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>::Device</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>RTE_Device.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>RTE\Device\STM32F207IG\RTE_Device.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>startup_stm32f2xx.s</FileName>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<FilePath>RTE\Device\STM32F207IG\startup_stm32f2xx.s</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>system_stm32f2xx.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>RTE\Device\STM32F207IG\system_stm32f2xx.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>DMA_STM32F2xx.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\Keil\STM32F2xx_DFP\1.0.7\RTE_Driver\DMA_STM32F2xx.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>GPIO_STM32F2xx.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\Keil\STM32F2xx_DFP\1.0.7\RTE_Driver\GPIO_STM32F2xx.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>::Drivers</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>MCI_STM32F2xx.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\Keil\STM32F2xx_DFP\1.0.7\RTE_Driver\MCI_STM32F2xx.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>::File System</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>FS_Config.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>RTE\File_System\FS_Config.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>FS_Config_MC_0.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>RTE\File_System\FS_Config_MC_0.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>FS_LFN_CM3_L.lib</FileName>
|
||||||
|
<FileType>4</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\Keil\MDK-Middleware\5.1.4\FileSystem\Lib\ARM\FS_LFN_CM3_L.lib</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
<Group>
|
||||||
|
<GroupName>::wolfSSL</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>config-Crypt.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>RTE\wolfSSL\config-Crypt.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>settings.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>RTE\wolfSSL\settings.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>cyassl_MDK_ARM.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\IDE\MDK5-ARM\Src\cyassl_MDK_ARM.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>ssl-dummy.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\IDE\MDK5-ARM\Src\ssl-dummy.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>aes.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\aes.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>arc4.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\arc4.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>asm.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\asm.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>asn.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\asn.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>blake2b.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\blake2b.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>camellia.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\camellia.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>coding.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\coding.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>compress.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\compress.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>des3.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\des3.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>dh.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\dh.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>dsa.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\dsa.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>ecc.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\ecc.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>ecc_fp.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\ecc_fp.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>error.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\error.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>hc128.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\hc128.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>hmac.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\hmac.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>integer.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\integer.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>logging.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\logging.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>md2.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\md2.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>md4.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\md4.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>md5.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\md5.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>memory.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\memory.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>misc.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\misc.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>wc_port.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\wc_port.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>pwdbased.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\pwdbased.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>rabbit.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\rabbit.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>random.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\random.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>ripemd.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\ripemd.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>rsa.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\rsa.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>sha.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\sha.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>sha256.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\sha256.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>sha512.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\sha512.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>tfm.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\3.0.0\cyassl\ctaocrypt\src\tfm.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>time-STM32F2xx.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>C:\Keil5\ARM\PACK\wolfSSL\CyaSSL\2.8.2\cyassl\IDE\MDK5-ARM\STM32F2xx_StdPeriph_Lib\time-STM32F2xx.c</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
</Groups>
|
||||||
|
</Target>
|
||||||
|
</Targets>
|
||||||
|
|
||||||
|
<RTE>
|
||||||
|
<apis>
|
||||||
|
<api Cclass="CMSIS" Cgroup="RTOS" exclusive="0">
|
||||||
|
<package name="CMSIS" url="http://www.keil.com/pack/" vendor="ARM" version="3.20.1"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</api>
|
||||||
|
<api Cclass="Drivers" Cgroup="MCI" exclusive="0">
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</api>
|
||||||
|
</apis>
|
||||||
|
<components>
|
||||||
|
<component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="3.20.0" condition="CMSIS Core">
|
||||||
|
<package name="CMSIS" url="http://www.keil.com/pack/" vendor="ARM" version="3.20.1"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX" Cvendor="ARM" Cversion="4.73.0" condition="CMSIS Core">
|
||||||
|
<package name="CMSIS" url="http://www.keil.com/pack/" vendor="ARM" version="3.20.3"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="File System" Cgroup="CORE" Cvariant="LFN" Cvendor="Keil" Cversion="5.0.4" condition="CMSIS Core with RTOS">
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.2"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="File System" Cgroup="Drive" Csub="Memory Card" Cvendor="Keil" Cversion="5.0.4" condition="File System and MCI Driver" maxInstances="2">
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.2"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cclass="Device" Cgroup="DMA" Cvendor="Keil" Cversion="1.0.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS Device">
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.3"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cclass="Device" Cgroup="GPIO" Cvendor="Keil" Cversion="1.0.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS Device">
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.3"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS Device">
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.3"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cclass="Drivers" Cgroup="MCI" Cvendor="Keil" Cversion="1.01.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS RTOS GPIO DMA">
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.4"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="Device" Csub="Timer" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core">
|
||||||
|
<package name="CyaSSL" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core">
|
||||||
|
<package name="CyaSSL" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfCrypt" Csub="Dummy" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core">
|
||||||
|
<package name="CyaSSL" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</component>
|
||||||
|
</components>
|
||||||
|
<files>
|
||||||
|
<file attr="config" category="source" name="CMSIS_RTX\Templates\RTX_Conf_CM.c">
|
||||||
|
<instance index="0">RTE\CMSIS\RTX_Conf_CM.c</instance>
|
||||||
|
<component Cclass="CMSIS" Cgroup="RTOS" Csub="Keil RTX" Cvendor="ARM" Cversion="4.74.0" condition="CMSIS Core"/>
|
||||||
|
<package name="CMSIS" schemaVersion="1.0" url="http://www.keil.com/pack/" vendor="ARM" version="3.20.4"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="RTE_Driver\Config\RTE_Device.h">
|
||||||
|
<instance index="0">RTE\Device\STM32F207IG\RTE_Device.h</instance>
|
||||||
|
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS Device"/>
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.4"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Device\Source\ARM\startup_stm32f2xx.s">
|
||||||
|
<instance index="0">RTE\Device\STM32F207IG\startup_stm32f2xx.s</instance>
|
||||||
|
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS Device"/>
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.4"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Device\Source\system_stm32f2xx.c">
|
||||||
|
<instance index="0">RTE\Device\STM32F207IG\system_stm32f2xx.c</instance>
|
||||||
|
<component Cclass="Device" Cgroup="Startup" Cvendor="Keil" Cversion="1.0.0" Dname="STM32F207IG" condition="STM32F2xx CMSIS Device"/>
|
||||||
|
<package name="STM32F2xx_DFP" url="http://www.keil.com/pack" vendor="Keil" version="1.0.4"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="FileSystem\Config\FS_Config.c">
|
||||||
|
<instance index="0">RTE\File_System\FS_Config.c</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="File System" Cgroup="CORE" Cvariant="LFN" Cvendor="Keil" Cversion="5.0.4" condition="CMSIS Core with RTOS"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.2"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="FileSystem\Config\FS_Config_MC.h">
|
||||||
|
<instance index="0">RTE\File_System\FS_Config_MC_0.h</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="File System" Cgroup="Drive" Csub="Memory Card" Cvendor="Keil" Cversion="5.0.4" condition="File System and MCI Driver" maxInstances="2"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.2"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Config.c">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Config.c</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="CORE" Cvariant="Debug" Cvendor="Keil" Cversion="5.0.2" condition="CMSIS Core with RTOS"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Config_BSD.h">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Config_BSD.h</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="Socket" Csub="BSD" Cvendor="Keil" Cversion="5.0.2" condition="Network UDP/TCP"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Config_DNS_Client.h">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Config_DNS_Client.h</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="Service" Csub="DNS Client" Cvendor="Keil" Cversion="5.0.2" condition="Network UDP"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Config_ETH.h">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Config_ETH_0.h</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="Interface" Csub="ETH" Cvendor="Keil" Cversion="5.0.2" condition="Network Driver ETH" maxInstances="1"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Config_TCP.h">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Config_TCP.h</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="Socket" Csub="TCP" Cvendor="Keil" Cversion="5.0.2" condition="Network Interface"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Config_UDP.h">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Config_UDP.h</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="Socket" Csub="UDP" Cvendor="Keil" Cversion="5.0.2" condition="Network Interface"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="source" name="Network\Config\Net_Debug.c">
|
||||||
|
<instance index="0" removed="1">RTE\Network\Net_Debug.c</instance>
|
||||||
|
<component Cbundle="MDK-Pro" Cclass="Network" Cgroup="CORE" Cvariant="Debug" Cvendor="Keil" Cversion="5.0.2" condition="CMSIS Core with RTOS"/>
|
||||||
|
<package name="MDK-Middleware" url="http://www.keil.com/pack/" vendor="Keil" version="5.1.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\IDE\MDK5-ARM\MDK-ARM\CyaSSL\config-Crypt.h">
|
||||||
|
<instance index="0" removed="1">RTE\Other\config-Crypt.h</instance>
|
||||||
|
<component Cclass="Other" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core"/>
|
||||||
|
<package name="CyaSSL" url="http://www.wolfSSL.com/keil/pack/" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\IDE\MDK5-ARM\MDK-ARM\CyaSSL\config-FS.h">
|
||||||
|
<instance index="0" removed="1">RTE\Other\config-FS.h</instance>
|
||||||
|
<component Cclass="Other" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core"/>
|
||||||
|
<package name="CyaSSL" url="http://www.wolfSSL.com/keil/pack/" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\IDE\MDK5-ARM\MDK-ARM\CyaSSL\config-RTX-TCP-FS.h">
|
||||||
|
<instance index="0" removed="1">RTE\Other\config-RTX-TCP-FS.h</instance>
|
||||||
|
<component Cclass="Other" Cgroup="CyaSSL" Csub="RTX,TCP,FS" Cvendor="wolfSSL" Cversion="3.0.0" condition="CyaSSL-RTX,TCP,FS"/>
|
||||||
|
<package name="CyaSSL" url="http://www.wolfSSL.com/keil/pack/" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\IDE\MDK5-ARM\MDK-ARM\CyaSSL\config.h">
|
||||||
|
<instance index="0" removed="1">RTE\Other\config.h</instance>
|
||||||
|
<component Cclass="Other" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core"/>
|
||||||
|
<package name="CyaSSL" url="http://www.wolfSSL.com/keil/pack/" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\IDE\MDK5-ARM\Conf\config-Crypt.h">
|
||||||
|
<instance index="0">RTE\wolfSSL\config-Crypt.h</instance>
|
||||||
|
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core"/>
|
||||||
|
<package license="cyassl\IDE\MDK5-ARM\Docs\CyaSSL-License.txt" name="CyaSSL" schemaVersion="1.0" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\IDE\MDK5-ARM\MDK-ARM\CyaSSL\config.h">
|
||||||
|
<instance index="0" removed="1">RTE\wolfSSL\config.h</instance>
|
||||||
|
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core"/>
|
||||||
|
<package name="CyaSSL" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos/>
|
||||||
|
</file>
|
||||||
|
<file attr="config" category="header" name="cyassl\cyassl\ctaocrypt\settings.h">
|
||||||
|
<instance index="0">RTE\wolfSSL\settings.h</instance>
|
||||||
|
<component Cbundle="wolfSSL" Cclass="wolfSSL" Cgroup="wolfCrypt" Csub="CORE" Cvendor="wolfSSL" Cversion="3.0.0" condition="wolfCrypt-Core"/>
|
||||||
|
<package license="cyassl\IDE\MDK5-ARM\Docs\CyaSSL-License.txt" name="CyaSSL" schemaVersion="1.0" url="http://www.wolfSSL.com/files/ide" vendor="wolfSSL" version="3.0.0"/>
|
||||||
|
<targetInfos>
|
||||||
|
<targetInfo name="CryptTest"/>
|
||||||
|
</targetInfos>
|
||||||
|
</file>
|
||||||
|
</files>
|
||||||
|
</RTE>
|
||||||
|
|
||||||
|
</Project>
|
|
@ -0,0 +1,667 @@
|
||||||
|
/* settings.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Place OS specific preprocessor flags, defines, includes here, will be
|
||||||
|
included into every file because types.h includes it */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef CTAO_CRYPT_SETTINGS_H
|
||||||
|
#define CTAO_CRYPT_SETTINGS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Uncomment next line if using IPHONE */
|
||||||
|
/* #define IPHONE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using ThreadX */
|
||||||
|
/* #define THREADX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Micrium ucOS */
|
||||||
|
/* #define MICRIUM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Mbed */
|
||||||
|
/* #define MBED */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip PIC32 ethernet starter kit */
|
||||||
|
/* #define MICROCHIP_PIC32 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 5 */
|
||||||
|
/* #define MICROCHIP_TCPIP_V5 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 6 or later */
|
||||||
|
/* #define MICROCHIP_TCPIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if using PIC32MZ Crypto Engine */
|
||||||
|
/* #define CYASSL_MICROCHIP_PIC32MZ */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS */
|
||||||
|
/* #define FREERTOS */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS Windows Simulator */
|
||||||
|
/* #define FREERTOS_WINSIM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using RTIP */
|
||||||
|
/* #define EBSNET */
|
||||||
|
|
||||||
|
/* Uncomment next line if using lwip */
|
||||||
|
/* #define CYASSL_LWIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for a game console */
|
||||||
|
/* #define CYASSL_GAME_BUILD */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for LSR */
|
||||||
|
/* #define CYASSL_LSR */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for Freescale MQX/RTCS/MFS */
|
||||||
|
/* #define FREESCALE_MQX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using STM32F2 */
|
||||||
|
/* #define CYASSL_STM32F2 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Comverge settings */
|
||||||
|
/* #define COMVERGE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using QL SEP settings */
|
||||||
|
/* #define CYASSL_QL */
|
||||||
|
|
||||||
|
/* Uncomment next line if using LwIP native TCP socket settings */
|
||||||
|
/* #define HAVE_LWIP_NATIVE */
|
||||||
|
|
||||||
|
/* Uncomment next line if building for EROAD */
|
||||||
|
/* #define CYASSL_EROAD */
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
|
||||||
|
#ifdef IPHONE
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_USER_SETTINGS
|
||||||
|
#include <user_settings.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef COMVERGE
|
||||||
|
#define THREADX
|
||||||
|
#define HAVE_NETX
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef THREADX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_NETX
|
||||||
|
#include "nx_api.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_LWIP_NATIVE) /* using LwIP native TCP socket */
|
||||||
|
#define CYASSL_LWIP
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_PIC32
|
||||||
|
/* #define CYASSL_MICROCHIP_PIC32MZ */
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_MICROCHIP_PIC32MZ
|
||||||
|
#define CYASSL_PIC32MZ_CE
|
||||||
|
#define CYASSL_PIC32MZ_CRYPT
|
||||||
|
#define HAVE_AES_ENGINE
|
||||||
|
#define CYASSL_PIC32MZ_RNG
|
||||||
|
/* #define CYASSL_PIC32MZ_HASH */
|
||||||
|
#define CYASSL_AES_COUNTER
|
||||||
|
#define HAVE_AESGCM
|
||||||
|
#define NO_BIG_INT
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP_V5
|
||||||
|
/* include timer functions */
|
||||||
|
#include "TCPIP Stack/TCPIP.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP
|
||||||
|
/* include timer, NTP functions */
|
||||||
|
#ifdef MICROCHIP_MPLAB_HARMONY
|
||||||
|
#include "tcpip/tcpip.h"
|
||||||
|
#else
|
||||||
|
#include "system/system_services.h"
|
||||||
|
#include "tcpip/sntp.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MBED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define NO_CERT
|
||||||
|
#define USE_CERT_BUFFERS_1024
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define HAVE_ECC
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define CYASSL_CMSIS_RTOS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_EROAD
|
||||||
|
#define FREESCALE_MQX
|
||||||
|
#define FREESCALE_MMCAU
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define NO_STDIO_FILESYSTEM
|
||||||
|
#define CYASSL_LEANPSK
|
||||||
|
#define HAVE_NULL_CIPHER
|
||||||
|
#define NO_OLD_TLS
|
||||||
|
#define NO_ASN
|
||||||
|
#define NO_BIG_INT
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_CERTS
|
||||||
|
#define NO_PWDBASED
|
||||||
|
#define NO_DES3
|
||||||
|
#define NO_MD4
|
||||||
|
#define NO_RC4
|
||||||
|
#define NO_MD5
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define NO_MAIN_DRIVER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREERTOS_WINSIM
|
||||||
|
#define FREERTOS
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Micrium will use Visual Studio for compilation but not the Win32 API */
|
||||||
|
#if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) \
|
||||||
|
&& !defined(EBSNET) && !defined(CYASSL_EROAD)
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(CYASSL_LEANPSK) && !defined(XMALLOC_USER)
|
||||||
|
#include <stdlib.h>
|
||||||
|
#define XMALLOC(s, h, type) malloc((s))
|
||||||
|
#define XFREE(p, h, type) free((p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(XMALLOC_USER) && defined(SSN_BUILDING_LIBYASSL)
|
||||||
|
#undef XMALLOC
|
||||||
|
#define XMALLOC yaXMALLOC
|
||||||
|
#undef XFREE
|
||||||
|
#define XFREE yaXFREE
|
||||||
|
#undef XREALLOC
|
||||||
|
#define XREALLOC yaXREALLOC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FREERTOS
|
||||||
|
#ifndef NO_WRITEV
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
#ifndef NO_SHA512
|
||||||
|
#define NO_SHA512
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DH
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DSA
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
#ifndef NO_HC128
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "semphr.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef EBSNET
|
||||||
|
#include "rtip.h"
|
||||||
|
|
||||||
|
/* #define DEBUG_CYASSL */
|
||||||
|
#define NO_CYASSL_DIR /* tbd */
|
||||||
|
|
||||||
|
#if (POLLOS)
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (RTPLATFORM)
|
||||||
|
#if (!RTP_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if (!KS_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (WINMSP3)
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#else
|
||||||
|
#sslpro: settings.h - please implement SIZEOF_LONG and SIZEOF_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, type) ((void *)rtp_malloc((s), SSL_PRO_MALLOC))
|
||||||
|
#define XFREE(p, h, type) (rtp_free(p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
|
||||||
|
#endif /* EBSNET */
|
||||||
|
|
||||||
|
#ifdef CYASSL_GAME_BUILD
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#if defined(__PPU) || defined(__XENON)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LSR
|
||||||
|
#define HAVE_WEBSERVER
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define CYASSL_LOW_MEMORY
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#define LSR_FS
|
||||||
|
#include "inc/hw_types.h"
|
||||||
|
#include "fs.h"
|
||||||
|
#endif
|
||||||
|
#define CYASSL_LWIP
|
||||||
|
#include <errno.h> /* for tcp errno */
|
||||||
|
#define CYASSL_SAFERTOS
|
||||||
|
#if defined(__IAR_SYSTEMS_ICC__)
|
||||||
|
/* enum uses enum */
|
||||||
|
#pragma diag_suppress=Pa089
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_SAFERTOS
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "SafeRTOS/semphr.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "SafeRTOS/heap.h"
|
||||||
|
#define XMALLOC(s, h, type) pvPortMalloc((s))
|
||||||
|
#define XFREE(p, h, type) vPortFree((p))
|
||||||
|
#define XREALLOC(p, n, h, t) pvPortRealloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LOW_MEMORY
|
||||||
|
#undef RSA_LOW_MEM
|
||||||
|
#define RSA_LOW_MEM
|
||||||
|
#undef CYASSL_SMALL_STACK
|
||||||
|
#define CYASSL_SMALL_STACK
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREESCALE_MQX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#define FREESCALE_K70_RNGA
|
||||||
|
/* #define FREESCALE_K53_RNGB */
|
||||||
|
#include "mqx.h"
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#include "mfs.h"
|
||||||
|
#include "fio.h"
|
||||||
|
#endif
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "mutex.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, t) (void *)_mem_alloc_system((s))
|
||||||
|
#define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));}
|
||||||
|
/* Note: MQX has no realloc, using fastmath above */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_STM32F2
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define STM32F2_RNG
|
||||||
|
#define STM32F2_CRYPTO
|
||||||
|
#define KEIL_INTRINSICS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICRIUM
|
||||||
|
|
||||||
|
#include "stdlib.h"
|
||||||
|
#include "net_cfg.h"
|
||||||
|
#include "ssl_cfg.h"
|
||||||
|
#include "net_secure_os.h"
|
||||||
|
|
||||||
|
#define CYASSL_TYPES
|
||||||
|
|
||||||
|
typedef CPU_INT08U byte;
|
||||||
|
typedef CPU_INT16U word16;
|
||||||
|
typedef CPU_INT32U word32;
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_WORD_SIZE == CPU_WORD_SIZE_32)
|
||||||
|
#define SIZEOF_LONG 4
|
||||||
|
#undef SIZEOF_LONG_LONG
|
||||||
|
#else
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STRING_USER
|
||||||
|
|
||||||
|
#define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr)))
|
||||||
|
#define XSTRNCPY(pstr_dest, pstr_src, len_max) \
|
||||||
|
((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \
|
||||||
|
(CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRNCMP(pstr_1, pstr_2, len_max) \
|
||||||
|
((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \
|
||||||
|
(CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRSTR(pstr, pstr_srch) \
|
||||||
|
((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \
|
||||||
|
(CPU_CHAR *)(pstr_srch)))
|
||||||
|
#define XMEMSET(pmem, data_val, size) \
|
||||||
|
((void)Mem_Set((void *)(pmem), (CPU_INT08U) (data_val), \
|
||||||
|
(CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \
|
||||||
|
(void *)(psrc), (CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCMP(pmem_1, pmem_2, size) \
|
||||||
|
(((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), (void *)(pmem_2), \
|
||||||
|
(CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES)
|
||||||
|
#define XMEMMOVE XMEMCPY
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
|
||||||
|
#define MICRIUM_MALLOC
|
||||||
|
#define XMALLOC(s, h, type) ((void *)NetSecure_BlkGet((CPU_INT08U)(type), \
|
||||||
|
(CPU_SIZE_T)(s), (void *)0))
|
||||||
|
#define XFREE(p, h, type) (NetSecure_BlkFree((CPU_INT08U)(type), \
|
||||||
|
(p), (void *)0))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_FS_EN == DEF_ENABLED)
|
||||||
|
#undef NO_FILESYSTEM
|
||||||
|
#else
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TRACE_LEVEL == CYASSL_TRACE_LEVEL_DBG)
|
||||||
|
#define DEBUG_CYASSL
|
||||||
|
#else
|
||||||
|
#undef DEBUG_CYASSL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_OPENSSL_EN == DEF_ENABLED)
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#else
|
||||||
|
#undef OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MULTI_THREAD_EN == DEF_ENABLED)
|
||||||
|
#undef SINGLE_THREADED
|
||||||
|
#else
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DH_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DH
|
||||||
|
#else
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DSA_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DSA
|
||||||
|
#else
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_PSK_EN == DEF_ENABLED)
|
||||||
|
#undef NO_PSK
|
||||||
|
#else
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_3DES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DES
|
||||||
|
#else
|
||||||
|
#define NO_DES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_AES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_AES
|
||||||
|
#else
|
||||||
|
#define NO_AES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RC4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RC4
|
||||||
|
#else
|
||||||
|
#define NO_RC4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RABBIT_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RABBIT
|
||||||
|
#else
|
||||||
|
#define NO_RABBIT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_HC128_EN == DEF_ENABLED)
|
||||||
|
#undef NO_HC128
|
||||||
|
#else
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#else
|
||||||
|
#undef BIG_ENDIAN_ORDER
|
||||||
|
#define LITTLE_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MD4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_MD4
|
||||||
|
#else
|
||||||
|
#define NO_MD4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_WRITEV_EN == DEF_ENABLED)
|
||||||
|
#undef NO_WRITEV
|
||||||
|
#else
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_RNG_SEED_EN == DEF_ENABLED)
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#else
|
||||||
|
#undef NO_DEV_RANDOM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_IO_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#else
|
||||||
|
#undef CYASSL_USER_IO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DYNAMIC_BUFFERS_EN == DEF_ENABLED)
|
||||||
|
#undef LARGE_STATIC_BUFFERS
|
||||||
|
#undef STATIC_CHUNKS_ONLY
|
||||||
|
#else
|
||||||
|
#define LARGE_STATIC_BUFFERS
|
||||||
|
#define STATIC_CHUNKS_ONLY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DER_LOAD_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DTLS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DTLS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DTLS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_CALLBACKS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_CALLBACKS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_CALLBACKS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_FAST_MATH_EN == DEF_ENABLED)
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#else
|
||||||
|
#undef USE_FAST_MATH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TFM_TIMING_RESISTANT_EN == DEF_ENABLED)
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#else
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* MICRIUM */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_QL
|
||||||
|
#ifndef CYASSL_SEP
|
||||||
|
#define CYASSL_SEP
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_EXTRA
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_CERTS
|
||||||
|
#define SESSION_CERTS
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_AESCCM
|
||||||
|
#define HAVE_AESCCM
|
||||||
|
#endif
|
||||||
|
#ifndef ATOMIC_USER
|
||||||
|
#define ATOMIC_USER
|
||||||
|
#endif
|
||||||
|
#ifndef CYASSL_DER_LOAD
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
#ifndef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_ECC
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_INDEX
|
||||||
|
#define SESSION_INDEX
|
||||||
|
#endif
|
||||||
|
#endif /* CYASSL_QL */
|
||||||
|
|
||||||
|
|
||||||
|
#if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \
|
||||||
|
!defined(CYASSL_LEANPSK) && !defined(NO_CYASSL_MEMORY)
|
||||||
|
#define USE_CYASSL_MEMORY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS)
|
||||||
|
#undef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* stream ciphers except arc4 need 32bit alignment, intel ok without */
|
||||||
|
#ifndef XSTREAM_ALIGNMENT
|
||||||
|
#if defined(__x86_64__) || defined(__ia64__) || defined(__i386__)
|
||||||
|
#define NO_XSTREAM_ALIGNMENT
|
||||||
|
#else
|
||||||
|
#define XSTREAM_ALIGNMENT
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* if using hardware crypto and have alignment requirements, specify the
|
||||||
|
requirement here. The record header of SSL/TLS will prvent easy alignment.
|
||||||
|
This hint tries to help as much as possible. */
|
||||||
|
#ifndef CYASSL_GENERAL_ALIGNMENT
|
||||||
|
#ifdef CYASSL_AESNI
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 16
|
||||||
|
#elif defined(XSTREAM_ALIGNMENT)
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 4
|
||||||
|
#else
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CRL
|
||||||
|
/* not widely supported yet */
|
||||||
|
#undef NO_SKID
|
||||||
|
#define NO_SKID
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Place any other flags or defines here */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* CTAO_CRYPT_SETTINGS_H */
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
/* certs_test.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define initial data for cert buffers */
|
||||||
|
#include <cyassl/certs_test.h>
|
||||||
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
/* main.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
#include <cyassl/ctaocrypt/logging.h>
|
||||||
|
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* Initialize a Flash Memory Card
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
#if !defined(NO_FILESYSTEM)
|
||||||
|
#include "rl_fs.h"
|
||||||
|
|
||||||
|
static void init_filesystem (void) {
|
||||||
|
int32_t retv;
|
||||||
|
|
||||||
|
retv = finit ("M0:");
|
||||||
|
if (retv == 0) {
|
||||||
|
retv = fmount ("M0:");
|
||||||
|
if (retv == 0) {
|
||||||
|
printf ("Drive M0 ready!\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf ("Drive M0 mount failed!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf ("Drive M0 initialization failed!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern void ctaocrypt_test(void * arg) ;
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* mian entry
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
void * arg = NULL ;
|
||||||
|
|
||||||
|
#if !defined(NO_FILESYSTEM)
|
||||||
|
init_filesystem ();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
printf("=== Start: Crypt test ===\n") ;
|
||||||
|
ctaocrypt_test(arg) ;
|
||||||
|
printf("=== End: Crypt test ===\n") ;
|
||||||
|
|
||||||
|
}
|
4758
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Projects/CryptTest/test.c
Normal file
4758
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Projects/CryptTest/test.c
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,85 @@
|
||||||
|
This program gives wolfCrypt and CyaSSL library demo.
|
||||||
|
|
||||||
|
In order to run the demo,
|
||||||
|
Copy {PACK}\wolfSSL\CyaSSL\{version}\cyassl\certs folder and files to the SD memory.
|
||||||
|
For demo configuration, refer config-Crypt.h and config-CyaSSL.h.
|
||||||
|
|
||||||
|
After download and start the execution, you can type in commands through the
|
||||||
|
Debug(printf) viewer.
|
||||||
|
|
||||||
|
test wolfCrypt Simple test suite
|
||||||
|
benchmark wolfCrypt Simple benchmark
|
||||||
|
server& simple server in background mode
|
||||||
|
client simple client
|
||||||
|
echoserver& echo server in background mode
|
||||||
|
echoclient echo client
|
||||||
|
server/client -h help for server/client command
|
||||||
|
|
||||||
|
|
||||||
|
=== Typical Command Usage Scenario ===
|
||||||
|
|
||||||
|
Starting Shell
|
||||||
|
>test
|
||||||
|
MD5 test passed!
|
||||||
|
MD4 test passed!
|
||||||
|
SHA test passed!
|
||||||
|
...
|
||||||
|
|
||||||
|
>benchmark
|
||||||
|
AES 25 kB took 0.025 seconds, 0.96 MB/s
|
||||||
|
ARC4 25 kB took 0.006 seconds, 3.83 MB/s
|
||||||
|
...
|
||||||
|
|
||||||
|
DH 2048 key agreement 685.93 milliseconds, avg over 1 iterations
|
||||||
|
|
||||||
|
>echoserver&
|
||||||
|
"echoserver" is running with the background mode.
|
||||||
|
|
||||||
|
>echoclient
|
||||||
|
ABCDEFG
|
||||||
|
ABCDEFG
|
||||||
|
WXYZ
|
||||||
|
WXYZ
|
||||||
|
quit
|
||||||
|
sending server shutdown command: quit!
|
||||||
|
client sent quit command: shutting down!
|
||||||
|
|
||||||
|
>server&
|
||||||
|
"server" is running with the background mode.
|
||||||
|
|
||||||
|
>client
|
||||||
|
peer's cert info:
|
||||||
|
issuer : /C=...
|
||||||
|
subject: /C=...
|
||||||
|
serial number:02
|
||||||
|
SSL version is TLSv1.2
|
||||||
|
SSL cipher suite is TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
|
||||||
|
peer's cert info:
|
||||||
|
issuer : /C=...
|
||||||
|
subject: /C=...
|
||||||
|
serial number:...
|
||||||
|
SSL version is TLSv1.2
|
||||||
|
SSL cipher suite is TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
|
||||||
|
Client message: hello cyassl!
|
||||||
|
Server response: I hear you fa shizzle!
|
||||||
|
|
||||||
|
>client -h 192.168.2.100 -p 443 -g -v 0
|
||||||
|
peer's cert info:
|
||||||
|
issuer : /CN=...
|
||||||
|
subject: /CN=...
|
||||||
|
serial number:44:39:...
|
||||||
|
SSL version is SSLv3
|
||||||
|
SSL cipher suite is SSL_RSA_WITH_RC4_128_SHA
|
||||||
|
SSL connect ok, sending GET...
|
||||||
|
...
|
||||||
|
===
|
||||||
|
|
||||||
|
For the hardware crypt on config-Crypt.h, download
|
||||||
|
STSW-STM32062: STM32F2xx standard peripherals library at
|
||||||
|
http://www.st.com/. Copy Libraries\STM32F2xx_StdPeriph_Driver\{inc,src} to
|
||||||
|
{PACK}\cyassl\IDE\MDK5-ARM\STM32F2xx_StdPeriph_Lib
|
||||||
|
|
||||||
|
|
||||||
|
Support
|
||||||
|
-------
|
||||||
|
Please send questions or comments to support@wolfssl.com
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,667 @@
|
||||||
|
/* settings.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Place OS specific preprocessor flags, defines, includes here, will be
|
||||||
|
included into every file because types.h includes it */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef CTAO_CRYPT_SETTINGS_H
|
||||||
|
#define CTAO_CRYPT_SETTINGS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Uncomment next line if using IPHONE */
|
||||||
|
/* #define IPHONE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using ThreadX */
|
||||||
|
/* #define THREADX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Micrium ucOS */
|
||||||
|
/* #define MICRIUM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Mbed */
|
||||||
|
/* #define MBED */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip PIC32 ethernet starter kit */
|
||||||
|
/* #define MICROCHIP_PIC32 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 5 */
|
||||||
|
/* #define MICROCHIP_TCPIP_V5 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 6 or later */
|
||||||
|
/* #define MICROCHIP_TCPIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if using PIC32MZ Crypto Engine */
|
||||||
|
/* #define CYASSL_MICROCHIP_PIC32MZ */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS */
|
||||||
|
/* #define FREERTOS */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS Windows Simulator */
|
||||||
|
/* #define FREERTOS_WINSIM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using RTIP */
|
||||||
|
/* #define EBSNET */
|
||||||
|
|
||||||
|
/* Uncomment next line if using lwip */
|
||||||
|
/* #define CYASSL_LWIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for a game console */
|
||||||
|
/* #define CYASSL_GAME_BUILD */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for LSR */
|
||||||
|
/* #define CYASSL_LSR */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for Freescale MQX/RTCS/MFS */
|
||||||
|
/* #define FREESCALE_MQX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using STM32F2 */
|
||||||
|
/* #define CYASSL_STM32F2 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Comverge settings */
|
||||||
|
/* #define COMVERGE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using QL SEP settings */
|
||||||
|
/* #define CYASSL_QL */
|
||||||
|
|
||||||
|
/* Uncomment next line if using LwIP native TCP socket settings */
|
||||||
|
/* #define HAVE_LWIP_NATIVE */
|
||||||
|
|
||||||
|
/* Uncomment next line if building for EROAD */
|
||||||
|
/* #define CYASSL_EROAD */
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
|
||||||
|
#ifdef IPHONE
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_USER_SETTINGS
|
||||||
|
#include <user_settings.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef COMVERGE
|
||||||
|
#define THREADX
|
||||||
|
#define HAVE_NETX
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef THREADX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_NETX
|
||||||
|
#include "nx_api.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_LWIP_NATIVE) /* using LwIP native TCP socket */
|
||||||
|
#define CYASSL_LWIP
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_PIC32
|
||||||
|
/* #define CYASSL_MICROCHIP_PIC32MZ */
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_MICROCHIP_PIC32MZ
|
||||||
|
#define CYASSL_PIC32MZ_CE
|
||||||
|
#define CYASSL_PIC32MZ_CRYPT
|
||||||
|
#define HAVE_AES_ENGINE
|
||||||
|
#define CYASSL_PIC32MZ_RNG
|
||||||
|
/* #define CYASSL_PIC32MZ_HASH */
|
||||||
|
#define CYASSL_AES_COUNTER
|
||||||
|
#define HAVE_AESGCM
|
||||||
|
#define NO_BIG_INT
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP_V5
|
||||||
|
/* include timer functions */
|
||||||
|
#include "TCPIP Stack/TCPIP.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP
|
||||||
|
/* include timer, NTP functions */
|
||||||
|
#ifdef MICROCHIP_MPLAB_HARMONY
|
||||||
|
#include "tcpip/tcpip.h"
|
||||||
|
#else
|
||||||
|
#include "system/system_services.h"
|
||||||
|
#include "tcpip/sntp.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MBED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define NO_CERT
|
||||||
|
#define USE_CERT_BUFFERS_1024
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define HAVE_ECC
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define CYASSL_CMSIS_RTOS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_EROAD
|
||||||
|
#define FREESCALE_MQX
|
||||||
|
#define FREESCALE_MMCAU
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define NO_STDIO_FILESYSTEM
|
||||||
|
#define CYASSL_LEANPSK
|
||||||
|
#define HAVE_NULL_CIPHER
|
||||||
|
#define NO_OLD_TLS
|
||||||
|
#define NO_ASN
|
||||||
|
#define NO_BIG_INT
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_CERTS
|
||||||
|
#define NO_PWDBASED
|
||||||
|
#define NO_DES3
|
||||||
|
#define NO_MD4
|
||||||
|
#define NO_RC4
|
||||||
|
#define NO_MD5
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define NO_MAIN_DRIVER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREERTOS_WINSIM
|
||||||
|
#define FREERTOS
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Micrium will use Visual Studio for compilation but not the Win32 API */
|
||||||
|
#if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) \
|
||||||
|
&& !defined(EBSNET) && !defined(CYASSL_EROAD)
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(CYASSL_LEANPSK) && !defined(XMALLOC_USER)
|
||||||
|
#include <stdlib.h>
|
||||||
|
#define XMALLOC(s, h, type) malloc((s))
|
||||||
|
#define XFREE(p, h, type) free((p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(XMALLOC_USER) && defined(SSN_BUILDING_LIBYASSL)
|
||||||
|
#undef XMALLOC
|
||||||
|
#define XMALLOC yaXMALLOC
|
||||||
|
#undef XFREE
|
||||||
|
#define XFREE yaXFREE
|
||||||
|
#undef XREALLOC
|
||||||
|
#define XREALLOC yaXREALLOC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FREERTOS
|
||||||
|
#ifndef NO_WRITEV
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
#ifndef NO_SHA512
|
||||||
|
#define NO_SHA512
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DH
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DSA
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
#ifndef NO_HC128
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "semphr.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef EBSNET
|
||||||
|
#include "rtip.h"
|
||||||
|
|
||||||
|
/* #define DEBUG_CYASSL */
|
||||||
|
#define NO_CYASSL_DIR /* tbd */
|
||||||
|
|
||||||
|
#if (POLLOS)
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (RTPLATFORM)
|
||||||
|
#if (!RTP_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if (!KS_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (WINMSP3)
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#else
|
||||||
|
#sslpro: settings.h - please implement SIZEOF_LONG and SIZEOF_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, type) ((void *)rtp_malloc((s), SSL_PRO_MALLOC))
|
||||||
|
#define XFREE(p, h, type) (rtp_free(p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
|
||||||
|
#endif /* EBSNET */
|
||||||
|
|
||||||
|
#ifdef CYASSL_GAME_BUILD
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#if defined(__PPU) || defined(__XENON)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LSR
|
||||||
|
#define HAVE_WEBSERVER
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define CYASSL_LOW_MEMORY
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#define LSR_FS
|
||||||
|
#include "inc/hw_types.h"
|
||||||
|
#include "fs.h"
|
||||||
|
#endif
|
||||||
|
#define CYASSL_LWIP
|
||||||
|
#include <errno.h> /* for tcp errno */
|
||||||
|
#define CYASSL_SAFERTOS
|
||||||
|
#if defined(__IAR_SYSTEMS_ICC__)
|
||||||
|
/* enum uses enum */
|
||||||
|
#pragma diag_suppress=Pa089
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_SAFERTOS
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "SafeRTOS/semphr.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "SafeRTOS/heap.h"
|
||||||
|
#define XMALLOC(s, h, type) pvPortMalloc((s))
|
||||||
|
#define XFREE(p, h, type) vPortFree((p))
|
||||||
|
#define XREALLOC(p, n, h, t) pvPortRealloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LOW_MEMORY
|
||||||
|
#undef RSA_LOW_MEM
|
||||||
|
#define RSA_LOW_MEM
|
||||||
|
#undef CYASSL_SMALL_STACK
|
||||||
|
#define CYASSL_SMALL_STACK
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREESCALE_MQX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#define FREESCALE_K70_RNGA
|
||||||
|
/* #define FREESCALE_K53_RNGB */
|
||||||
|
#include "mqx.h"
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#include "mfs.h"
|
||||||
|
#include "fio.h"
|
||||||
|
#endif
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "mutex.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, t) (void *)_mem_alloc_system((s))
|
||||||
|
#define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));}
|
||||||
|
/* Note: MQX has no realloc, using fastmath above */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_STM32F2
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define STM32F2_RNG
|
||||||
|
#define STM32F2_CRYPTO
|
||||||
|
#define KEIL_INTRINSICS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICRIUM
|
||||||
|
|
||||||
|
#include "stdlib.h"
|
||||||
|
#include "net_cfg.h"
|
||||||
|
#include "ssl_cfg.h"
|
||||||
|
#include "net_secure_os.h"
|
||||||
|
|
||||||
|
#define CYASSL_TYPES
|
||||||
|
|
||||||
|
typedef CPU_INT08U byte;
|
||||||
|
typedef CPU_INT16U word16;
|
||||||
|
typedef CPU_INT32U word32;
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_WORD_SIZE == CPU_WORD_SIZE_32)
|
||||||
|
#define SIZEOF_LONG 4
|
||||||
|
#undef SIZEOF_LONG_LONG
|
||||||
|
#else
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STRING_USER
|
||||||
|
|
||||||
|
#define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr)))
|
||||||
|
#define XSTRNCPY(pstr_dest, pstr_src, len_max) \
|
||||||
|
((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \
|
||||||
|
(CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRNCMP(pstr_1, pstr_2, len_max) \
|
||||||
|
((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \
|
||||||
|
(CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRSTR(pstr, pstr_srch) \
|
||||||
|
((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \
|
||||||
|
(CPU_CHAR *)(pstr_srch)))
|
||||||
|
#define XMEMSET(pmem, data_val, size) \
|
||||||
|
((void)Mem_Set((void *)(pmem), (CPU_INT08U) (data_val), \
|
||||||
|
(CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \
|
||||||
|
(void *)(psrc), (CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCMP(pmem_1, pmem_2, size) \
|
||||||
|
(((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), (void *)(pmem_2), \
|
||||||
|
(CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES)
|
||||||
|
#define XMEMMOVE XMEMCPY
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
|
||||||
|
#define MICRIUM_MALLOC
|
||||||
|
#define XMALLOC(s, h, type) ((void *)NetSecure_BlkGet((CPU_INT08U)(type), \
|
||||||
|
(CPU_SIZE_T)(s), (void *)0))
|
||||||
|
#define XFREE(p, h, type) (NetSecure_BlkFree((CPU_INT08U)(type), \
|
||||||
|
(p), (void *)0))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_FS_EN == DEF_ENABLED)
|
||||||
|
#undef NO_FILESYSTEM
|
||||||
|
#else
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TRACE_LEVEL == CYASSL_TRACE_LEVEL_DBG)
|
||||||
|
#define DEBUG_CYASSL
|
||||||
|
#else
|
||||||
|
#undef DEBUG_CYASSL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_OPENSSL_EN == DEF_ENABLED)
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#else
|
||||||
|
#undef OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MULTI_THREAD_EN == DEF_ENABLED)
|
||||||
|
#undef SINGLE_THREADED
|
||||||
|
#else
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DH_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DH
|
||||||
|
#else
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DSA_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DSA
|
||||||
|
#else
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_PSK_EN == DEF_ENABLED)
|
||||||
|
#undef NO_PSK
|
||||||
|
#else
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_3DES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DES
|
||||||
|
#else
|
||||||
|
#define NO_DES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_AES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_AES
|
||||||
|
#else
|
||||||
|
#define NO_AES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RC4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RC4
|
||||||
|
#else
|
||||||
|
#define NO_RC4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RABBIT_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RABBIT
|
||||||
|
#else
|
||||||
|
#define NO_RABBIT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_HC128_EN == DEF_ENABLED)
|
||||||
|
#undef NO_HC128
|
||||||
|
#else
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#else
|
||||||
|
#undef BIG_ENDIAN_ORDER
|
||||||
|
#define LITTLE_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MD4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_MD4
|
||||||
|
#else
|
||||||
|
#define NO_MD4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_WRITEV_EN == DEF_ENABLED)
|
||||||
|
#undef NO_WRITEV
|
||||||
|
#else
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_RNG_SEED_EN == DEF_ENABLED)
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#else
|
||||||
|
#undef NO_DEV_RANDOM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_IO_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#else
|
||||||
|
#undef CYASSL_USER_IO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DYNAMIC_BUFFERS_EN == DEF_ENABLED)
|
||||||
|
#undef LARGE_STATIC_BUFFERS
|
||||||
|
#undef STATIC_CHUNKS_ONLY
|
||||||
|
#else
|
||||||
|
#define LARGE_STATIC_BUFFERS
|
||||||
|
#define STATIC_CHUNKS_ONLY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DER_LOAD_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DTLS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DTLS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DTLS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_CALLBACKS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_CALLBACKS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_CALLBACKS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_FAST_MATH_EN == DEF_ENABLED)
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#else
|
||||||
|
#undef USE_FAST_MATH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TFM_TIMING_RESISTANT_EN == DEF_ENABLED)
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#else
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* MICRIUM */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_QL
|
||||||
|
#ifndef CYASSL_SEP
|
||||||
|
#define CYASSL_SEP
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_EXTRA
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_CERTS
|
||||||
|
#define SESSION_CERTS
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_AESCCM
|
||||||
|
#define HAVE_AESCCM
|
||||||
|
#endif
|
||||||
|
#ifndef ATOMIC_USER
|
||||||
|
#define ATOMIC_USER
|
||||||
|
#endif
|
||||||
|
#ifndef CYASSL_DER_LOAD
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
#ifndef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_ECC
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_INDEX
|
||||||
|
#define SESSION_INDEX
|
||||||
|
#endif
|
||||||
|
#endif /* CYASSL_QL */
|
||||||
|
|
||||||
|
|
||||||
|
#if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \
|
||||||
|
!defined(CYASSL_LEANPSK) && !defined(NO_CYASSL_MEMORY)
|
||||||
|
#define USE_CYASSL_MEMORY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS)
|
||||||
|
#undef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* stream ciphers except arc4 need 32bit alignment, intel ok without */
|
||||||
|
#ifndef XSTREAM_ALIGNMENT
|
||||||
|
#if defined(__x86_64__) || defined(__ia64__) || defined(__i386__)
|
||||||
|
#define NO_XSTREAM_ALIGNMENT
|
||||||
|
#else
|
||||||
|
#define XSTREAM_ALIGNMENT
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* if using hardware crypto and have alignment requirements, specify the
|
||||||
|
requirement here. The record header of SSL/TLS will prvent easy alignment.
|
||||||
|
This hint tries to help as much as possible. */
|
||||||
|
#ifndef CYASSL_GENERAL_ALIGNMENT
|
||||||
|
#ifdef CYASSL_AESNI
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 16
|
||||||
|
#elif defined(XSTREAM_ALIGNMENT)
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 4
|
||||||
|
#else
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CRL
|
||||||
|
/* not widely supported yet */
|
||||||
|
#undef NO_SKID
|
||||||
|
#define NO_SKID
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Place any other flags or defines here */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* CTAO_CRYPT_SETTINGS_H */
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,28 @@
|
||||||
|
/* certs_test.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define initial data for cert buffers */
|
||||||
|
#include <cyassl/certs_test.h>
|
||||||
|
|
|
@ -0,0 +1,858 @@
|
||||||
|
/* client.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
#define CYASSL_MDK_ARM
|
||||||
|
#if defined(CYASSL_MDK_ARM)
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK5)
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#include "rl_fs.h"
|
||||||
|
#include "rl_net.h"
|
||||||
|
#else
|
||||||
|
#include "rtl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/settings.h>
|
||||||
|
|
||||||
|
#if !defined(CYASSL_TRACK_MEMORY) && !defined(NO_MAIN_DRIVER)
|
||||||
|
/* in case memory tracker wants stats */
|
||||||
|
#define CYASSL_TRACK_MEMORY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ssl.h>
|
||||||
|
#include <cyassl/test.h>
|
||||||
|
#include "examples/client/client.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_CALLBACKS
|
||||||
|
int handShakeCB(HandShakeInfo*);
|
||||||
|
int timeoutCB(TimeoutInfo*);
|
||||||
|
Timeval timeout;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
static void NonBlockingSSL_Connect(CYASSL* ssl)
|
||||||
|
{
|
||||||
|
#ifndef CYASSL_CALLBACKS
|
||||||
|
int ret = CyaSSL_connect(ssl);
|
||||||
|
#else
|
||||||
|
int ret = CyaSSL_connect_ex(ssl, handShakeCB, timeoutCB, timeout);
|
||||||
|
#endif
|
||||||
|
int error = CyaSSL_get_error(ssl, 0);
|
||||||
|
SOCKET_T sockfd = (SOCKET_T)CyaSSL_get_fd(ssl);
|
||||||
|
int select_ret;
|
||||||
|
|
||||||
|
while (ret != SSL_SUCCESS && (error == SSL_ERROR_WANT_READ ||
|
||||||
|
error == SSL_ERROR_WANT_WRITE)) {
|
||||||
|
int currTimeout = 1;
|
||||||
|
|
||||||
|
if (error == SSL_ERROR_WANT_READ)
|
||||||
|
printf("... client would read block\n");
|
||||||
|
else
|
||||||
|
printf("... client would write block\n");
|
||||||
|
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
currTimeout = CyaSSL_dtls_get_current_timeout(ssl);
|
||||||
|
#endif
|
||||||
|
select_ret = tcp_select(sockfd, currTimeout);
|
||||||
|
|
||||||
|
if ((select_ret == TEST_RECV_READY) ||
|
||||||
|
(select_ret == TEST_ERROR_READY)) {
|
||||||
|
#ifndef CYASSL_CALLBACKS
|
||||||
|
ret = CyaSSL_connect(ssl);
|
||||||
|
#else
|
||||||
|
ret = CyaSSL_connect_ex(ssl,handShakeCB,timeoutCB,timeout);
|
||||||
|
#endif
|
||||||
|
error = CyaSSL_get_error(ssl, 0);
|
||||||
|
}
|
||||||
|
else if (select_ret == TEST_TIMEOUT && !CyaSSL_dtls(ssl)) {
|
||||||
|
error = SSL_ERROR_WANT_READ;
|
||||||
|
}
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
else if (select_ret == TEST_TIMEOUT && CyaSSL_dtls(ssl) &&
|
||||||
|
CyaSSL_dtls_got_timeout(ssl) >= 0) {
|
||||||
|
error = SSL_ERROR_WANT_READ;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
else {
|
||||||
|
error = SSL_FATAL_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ret != SSL_SUCCESS)
|
||||||
|
err_sys("SSL_connect failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void Usage(void)
|
||||||
|
{
|
||||||
|
printf("client " LIBCYASSL_VERSION_STRING
|
||||||
|
" NOTE: All files relative to CyaSSL home dir\n");
|
||||||
|
printf("-? Help, print this usage\n");
|
||||||
|
printf("-h <host> Host to connect to, default %s\n", yasslIP);
|
||||||
|
printf("-p <num> Port to connect on, not 0, default %d\n", yasslPort);
|
||||||
|
printf("-v <num> SSL version [0-3], SSLv3(0) - TLS1.2(3)), default %d\n",
|
||||||
|
CLIENT_DEFAULT_VERSION);
|
||||||
|
printf("-l <str> Cipher list\n");
|
||||||
|
printf("-c <file> Certificate file, default %s\n", cliCert);
|
||||||
|
printf("-k <file> Key file, default %s\n", cliKey);
|
||||||
|
printf("-A <file> Certificate Authority file, default %s\n", caCert);
|
||||||
|
printf("-b <num> Benchmark <num> connections and print stats\n");
|
||||||
|
printf("-s Use pre Shared keys\n");
|
||||||
|
printf("-t Track CyaSSL memory use\n");
|
||||||
|
printf("-d Disable peer checks\n");
|
||||||
|
printf("-g Send server HTTP GET\n");
|
||||||
|
printf("-u Use UDP DTLS,"
|
||||||
|
" add -v 2 for DTLSv1 (default), -v 3 for DTLSv1.2\n");
|
||||||
|
printf("-m Match domain name in cert\n");
|
||||||
|
printf("-N Use Non-blocking sockets\n");
|
||||||
|
printf("-r Resume session\n");
|
||||||
|
printf("-f Fewer packets/group messages\n");
|
||||||
|
printf("-x Disable client cert/key loading\n");
|
||||||
|
#ifdef SHOW_SIZES
|
||||||
|
printf("-z Print structure sizes\n");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SNI
|
||||||
|
printf("-S <str> Use Host Name Indication\n");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_MAX_FRAGMENT
|
||||||
|
printf("-L <num> Use Maximum Fragment Length [1-5]\n");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_TRUNCATED_HMAC
|
||||||
|
printf("-T Use Truncated HMAC\n");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
printf("-o Perform OCSP lookup on peer certificate\n");
|
||||||
|
printf("-O <url> Perform OCSP lookup using <url> as responder\n");
|
||||||
|
#endif
|
||||||
|
#ifdef ATOMIC_USER
|
||||||
|
printf("-U Atomic User Record Layer Callbacks\n");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|
printf("-P Public Key Callbacks\n");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_MDK_SHELL
|
||||||
|
#define exit(code) return(code)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
THREAD_RETURN CYASSL_THREAD client_test(void* args)
|
||||||
|
{
|
||||||
|
SOCKET_T sockfd = 0;
|
||||||
|
|
||||||
|
CYASSL_METHOD* method = 0;
|
||||||
|
CYASSL_CTX* ctx = 0;
|
||||||
|
CYASSL* ssl = 0;
|
||||||
|
|
||||||
|
CYASSL* sslResume = 0;
|
||||||
|
CYASSL_SESSION* session = 0;
|
||||||
|
char resumeMsg[] = "resuming cyassl!";
|
||||||
|
int resumeSz = sizeof(resumeMsg);
|
||||||
|
|
||||||
|
char msg[32] = "hello cyassl!"; /* GET may make bigger */
|
||||||
|
char reply[80];
|
||||||
|
int input;
|
||||||
|
int msgSz = (int)strlen(msg);
|
||||||
|
|
||||||
|
word16 port = yasslPort;
|
||||||
|
char* host = (char*)yasslIP;
|
||||||
|
char* domain = (char*)"www.yassl.com";
|
||||||
|
|
||||||
|
int ch;
|
||||||
|
int version = CLIENT_INVALID_VERSION;
|
||||||
|
int usePsk = 0;
|
||||||
|
int sendGET = 0;
|
||||||
|
int benchmark = 0;
|
||||||
|
int doDTLS = 0;
|
||||||
|
int matchName = 0;
|
||||||
|
int doPeerCheck = 1;
|
||||||
|
int nonBlocking = 0;
|
||||||
|
int resumeSession = 0;
|
||||||
|
int trackMemory = 0;
|
||||||
|
int useClientCert = 1;
|
||||||
|
int fewerPackets = 0;
|
||||||
|
int atomicUser = 0;
|
||||||
|
int pkCallbacks = 0;
|
||||||
|
char* cipherList = NULL;
|
||||||
|
char* verifyCert = (char*)caCert;
|
||||||
|
char* ourCert = (char*)cliCert;
|
||||||
|
char* ourKey = (char*)cliKey;
|
||||||
|
|
||||||
|
#ifdef HAVE_SNI
|
||||||
|
char* sniHostName = NULL;
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_MAX_FRAGMENT
|
||||||
|
byte maxFragment = 0;
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_TRUNCATED_HMAC
|
||||||
|
byte truncatedHMAC = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
int useOcsp = 0;
|
||||||
|
char* ocspUrl = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int argc = ((func_args*)args)->argc;
|
||||||
|
char** argv = ((func_args*)args)->argv;
|
||||||
|
|
||||||
|
((func_args*)args)->return_code = -1; /* error state */
|
||||||
|
|
||||||
|
#ifdef NO_RSA
|
||||||
|
verifyCert = (char*)eccCert;
|
||||||
|
ourCert = (char*)cliEccCert;
|
||||||
|
ourKey = (char*)cliEccKey;
|
||||||
|
#endif
|
||||||
|
(void)resumeSz;
|
||||||
|
(void)session;
|
||||||
|
(void)sslResume;
|
||||||
|
(void)trackMemory;
|
||||||
|
(void)atomicUser;
|
||||||
|
(void)pkCallbacks;
|
||||||
|
|
||||||
|
StackTrap();
|
||||||
|
|
||||||
|
while ((ch = mygetopt(argc, argv,
|
||||||
|
"?gdusmNrtfxUPh:p:v:l:A:c:k:b:zS:L:ToO:")) != -1) {
|
||||||
|
switch (ch) {
|
||||||
|
case '?' :
|
||||||
|
Usage();
|
||||||
|
exit(EXIT_SUCCESS);
|
||||||
|
|
||||||
|
case 'g' :
|
||||||
|
sendGET = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'd' :
|
||||||
|
doPeerCheck = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'u' :
|
||||||
|
doDTLS = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 's' :
|
||||||
|
usePsk = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 't' :
|
||||||
|
#ifdef USE_CYASSL_MEMORY
|
||||||
|
trackMemory = 1;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'm' :
|
||||||
|
matchName = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'x' :
|
||||||
|
useClientCert = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'f' :
|
||||||
|
fewerPackets = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'U' :
|
||||||
|
#ifdef ATOMIC_USER
|
||||||
|
atomicUser = 1;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'P' :
|
||||||
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|
pkCallbacks = 1;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'h' :
|
||||||
|
host = myoptarg;
|
||||||
|
domain = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'p' :
|
||||||
|
port = (word16)atoi(myoptarg);
|
||||||
|
#if !defined(NO_MAIN_DRIVER) || defined(USE_WINDOWS_API)
|
||||||
|
if (port == 0)
|
||||||
|
err_sys("port number cannot be 0");
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'v' :
|
||||||
|
version = atoi(myoptarg);
|
||||||
|
if (version < 0 || version > 3) {
|
||||||
|
Usage();
|
||||||
|
exit(MY_EX_USAGE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'l' :
|
||||||
|
cipherList = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'A' :
|
||||||
|
verifyCert = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'c' :
|
||||||
|
ourCert = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'k' :
|
||||||
|
ourKey = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'b' :
|
||||||
|
benchmark = atoi(myoptarg);
|
||||||
|
if (benchmark < 0 || benchmark > 1000000) {
|
||||||
|
Usage();
|
||||||
|
exit(MY_EX_USAGE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'N' :
|
||||||
|
nonBlocking = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'r' :
|
||||||
|
resumeSession = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'z' :
|
||||||
|
#ifndef CYASSL_LEANPSK
|
||||||
|
CyaSSL_GetObjectSize();
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'S' :
|
||||||
|
#ifdef HAVE_SNI
|
||||||
|
sniHostName = myoptarg;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'L' :
|
||||||
|
#ifdef HAVE_MAX_FRAGMENT
|
||||||
|
maxFragment = atoi(myoptarg);
|
||||||
|
if (maxFragment < CYASSL_MFL_2_9 ||
|
||||||
|
maxFragment > CYASSL_MFL_2_13) {
|
||||||
|
Usage();
|
||||||
|
exit(MY_EX_USAGE);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'T' :
|
||||||
|
#ifdef HAVE_TRUNCATED_HMAC
|
||||||
|
truncatedHMAC = 1;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'o' :
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
useOcsp = 1;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'O' :
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
useOcsp = 1;
|
||||||
|
ocspUrl = myoptarg;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
Usage();
|
||||||
|
exit(MY_EX_USAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
myoptind = 0; /* reset for test cases */
|
||||||
|
|
||||||
|
/* sort out DTLS versus TLS versions */
|
||||||
|
if (version == CLIENT_INVALID_VERSION) {
|
||||||
|
if (doDTLS)
|
||||||
|
version = CLIENT_DTLS_DEFAULT_VERSION;
|
||||||
|
else
|
||||||
|
version = CLIENT_DEFAULT_VERSION;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (doDTLS) {
|
||||||
|
if (version == 3)
|
||||||
|
version = -2;
|
||||||
|
else
|
||||||
|
version = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef USE_CYASSL_MEMORY
|
||||||
|
if (trackMemory)
|
||||||
|
InitMemoryTracker();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
switch (version) {
|
||||||
|
#ifndef NO_OLD_TLS
|
||||||
|
case 0:
|
||||||
|
method = CyaSSLv3_client_method();
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef NO_TLS
|
||||||
|
case 1:
|
||||||
|
method = CyaTLSv1_client_method();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
method = CyaTLSv1_1_client_method();
|
||||||
|
break;
|
||||||
|
#endif /* NO_TLS */
|
||||||
|
|
||||||
|
#endif /* NO_OLD_TLS */
|
||||||
|
|
||||||
|
#ifndef NO_TLS
|
||||||
|
case 3:
|
||||||
|
method = CyaTLSv1_2_client_method();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
case -1:
|
||||||
|
method = CyaDTLSv1_client_method();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case -2:
|
||||||
|
method = CyaDTLSv1_2_client_method();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
default:
|
||||||
|
err_sys("Bad SSL version");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (method == NULL)
|
||||||
|
err_sys("unable to get method");
|
||||||
|
|
||||||
|
ctx = CyaSSL_CTX_new(method);
|
||||||
|
if (ctx == NULL)
|
||||||
|
err_sys("unable to get ctx");
|
||||||
|
|
||||||
|
if (cipherList)
|
||||||
|
if (CyaSSL_CTX_set_cipher_list(ctx, cipherList) != SSL_SUCCESS)
|
||||||
|
err_sys("client can't set cipher list 1");
|
||||||
|
|
||||||
|
#ifdef CYASSL_LEANPSK
|
||||||
|
usePsk = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(NO_RSA) && !defined(HAVE_ECC)
|
||||||
|
usePsk = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (fewerPackets)
|
||||||
|
CyaSSL_CTX_set_group_messages(ctx);
|
||||||
|
|
||||||
|
if (usePsk) {
|
||||||
|
#ifndef NO_PSK
|
||||||
|
CyaSSL_CTX_set_psk_client_callback(ctx, my_psk_client_cb);
|
||||||
|
if (cipherList == NULL) {
|
||||||
|
const char *defaultCipherList;
|
||||||
|
#ifdef HAVE_NULL_CIPHER
|
||||||
|
defaultCipherList = "PSK-NULL-SHA256";
|
||||||
|
#else
|
||||||
|
defaultCipherList = "PSK-AES128-CBC-SHA256";
|
||||||
|
#endif
|
||||||
|
if (CyaSSL_CTX_set_cipher_list(ctx,defaultCipherList) !=SSL_SUCCESS)
|
||||||
|
err_sys("client can't set cipher list 2");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
useClientCert = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
|
CyaSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CYASSL_SNIFFER) && !defined(HAVE_NTRU) && !defined(HAVE_ECC)
|
||||||
|
if (cipherList == NULL) {
|
||||||
|
/* don't use EDH, can't sniff tmp keys */
|
||||||
|
if (CyaSSL_CTX_set_cipher_list(ctx, "AES256-SHA256") != SSL_SUCCESS) {
|
||||||
|
err_sys("client can't set cipher list 3");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
if (useOcsp) {
|
||||||
|
if (ocspUrl != NULL) {
|
||||||
|
CyaSSL_CTX_SetOCSP_OverrideURL(ctx, ocspUrl);
|
||||||
|
CyaSSL_CTX_EnableOCSP(ctx, CYASSL_OCSP_NO_NONCE
|
||||||
|
| CYASSL_OCSP_URL_OVERRIDE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
CyaSSL_CTX_EnableOCSP(ctx, CYASSL_OCSP_NO_NONCE);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef USER_CA_CB
|
||||||
|
CyaSSL_CTX_SetCACb(ctx, CaCb);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef VERIFY_CALLBACK
|
||||||
|
CyaSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, myVerify);
|
||||||
|
#endif
|
||||||
|
#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
|
||||||
|
if (useClientCert){
|
||||||
|
if (CyaSSL_CTX_use_certificate_chain_file(ctx, ourCert) != SSL_SUCCESS)
|
||||||
|
err_sys("can't load client cert file, check file and run from"
|
||||||
|
" CyaSSL home dir");
|
||||||
|
|
||||||
|
if (CyaSSL_CTX_use_PrivateKey_file(ctx, ourKey, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load client private key file, check file and run "
|
||||||
|
"from CyaSSL home dir");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!usePsk) {
|
||||||
|
if (CyaSSL_CTX_load_verify_locations(ctx, verifyCert, 0) != SSL_SUCCESS)
|
||||||
|
err_sys("can't load ca file, Please run from CyaSSL home dir");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if !defined(NO_CERTS)
|
||||||
|
if (!usePsk && doPeerCheck == 0)
|
||||||
|
CyaSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
CyaSSL_CTX_UseCavium(ctx, CAVIUM_DEV_ID);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SNI
|
||||||
|
if (sniHostName)
|
||||||
|
if (CyaSSL_CTX_UseSNI(ctx, 0, sniHostName, XSTRLEN(sniHostName))
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("UseSNI failed");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_MAX_FRAGMENT
|
||||||
|
if (maxFragment)
|
||||||
|
if (CyaSSL_CTX_UseMaxFragment(ctx, maxFragment) != SSL_SUCCESS)
|
||||||
|
err_sys("UseMaxFragment failed");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_TRUNCATED_HMAC
|
||||||
|
if (truncatedHMAC)
|
||||||
|
if (CyaSSL_CTX_UseTruncatedHMAC(ctx) != SSL_SUCCESS)
|
||||||
|
err_sys("UseTruncatedHMAC failed");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (benchmark) {
|
||||||
|
/* time passed in number of connects give average */
|
||||||
|
int times = benchmark;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
double start = current_time(), avg;
|
||||||
|
|
||||||
|
for (i = 0; i < times; i++) {
|
||||||
|
tcp_connect(&sockfd, host, port, doDTLS);
|
||||||
|
|
||||||
|
ssl = CyaSSL_new(ctx);
|
||||||
|
CyaSSL_set_fd(ssl, sockfd);
|
||||||
|
if (CyaSSL_connect(ssl) != SSL_SUCCESS)
|
||||||
|
err_sys("SSL_connect failed");
|
||||||
|
|
||||||
|
CyaSSL_shutdown(ssl);
|
||||||
|
CyaSSL_free(ssl);
|
||||||
|
CloseSocket(sockfd);
|
||||||
|
}
|
||||||
|
avg = current_time() - start;
|
||||||
|
avg /= times;
|
||||||
|
avg *= 1000; /* milliseconds */
|
||||||
|
printf("CyaSSL_connect avg took: %8.3f milliseconds\n", avg);
|
||||||
|
|
||||||
|
CyaSSL_CTX_free(ctx);
|
||||||
|
((func_args*)args)->return_code = 0;
|
||||||
|
|
||||||
|
exit(EXIT_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_ARM)
|
||||||
|
CyaSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ssl = CyaSSL_new(ctx);
|
||||||
|
if (ssl == NULL)
|
||||||
|
err_sys("unable to get SSL object");
|
||||||
|
if (doDTLS) {
|
||||||
|
SOCKADDR_IN_T addr;
|
||||||
|
build_addr(&addr, host, port, 1);
|
||||||
|
CyaSSL_dtls_set_peer(ssl, &addr, sizeof(addr));
|
||||||
|
tcp_socket(&sockfd, 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tcp_connect(&sockfd, host, port, 0);
|
||||||
|
}
|
||||||
|
CyaSSL_set_fd(ssl, sockfd);
|
||||||
|
#ifdef HAVE_CRL
|
||||||
|
if (CyaSSL_EnableCRL(ssl, CYASSL_CRL_CHECKALL) != SSL_SUCCESS)
|
||||||
|
err_sys("can't enable crl check");
|
||||||
|
if (CyaSSL_LoadCRL(ssl, crlPemDir, SSL_FILETYPE_PEM, 0) != SSL_SUCCESS)
|
||||||
|
err_sys("can't load crl, check crlfile and date validity");
|
||||||
|
if (CyaSSL_SetCRL_Cb(ssl, CRL_CallBack) != SSL_SUCCESS)
|
||||||
|
err_sys("can't set crl callback");
|
||||||
|
#endif
|
||||||
|
#ifdef ATOMIC_USER
|
||||||
|
if (atomicUser)
|
||||||
|
SetupAtomicUser(ctx, ssl);
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|
if (pkCallbacks)
|
||||||
|
SetupPkCallbacks(ctx, ssl);
|
||||||
|
#endif
|
||||||
|
if (matchName && doPeerCheck)
|
||||||
|
CyaSSL_check_domain_name(ssl, domain);
|
||||||
|
#ifndef CYASSL_CALLBACKS
|
||||||
|
if (nonBlocking) {
|
||||||
|
CyaSSL_set_using_nonblock(ssl, 1);
|
||||||
|
tcp_set_nonblocking(&sockfd);
|
||||||
|
NonBlockingSSL_Connect(ssl);
|
||||||
|
}
|
||||||
|
else if (CyaSSL_connect(ssl) != SSL_SUCCESS) {
|
||||||
|
/* see note at top of README */
|
||||||
|
int err = CyaSSL_get_error(ssl, 0);
|
||||||
|
char buffer[CYASSL_MAX_ERROR_SZ];
|
||||||
|
printf("err = %d, %s\n", err,
|
||||||
|
CyaSSL_ERR_error_string(err, buffer));
|
||||||
|
err_sys("SSL_connect failed");
|
||||||
|
/* if you're getting an error here */
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
timeout.tv_sec = 2;
|
||||||
|
timeout.tv_usec = 0;
|
||||||
|
NonBlockingSSL_Connect(ssl); /* will keep retrying on timeout */
|
||||||
|
#endif
|
||||||
|
showPeer(ssl);
|
||||||
|
|
||||||
|
if (sendGET) {
|
||||||
|
printf("SSL connect ok, sending GET...\n");
|
||||||
|
msgSz = 28;
|
||||||
|
strncpy(msg, "GET /index.html HTTP/1.0\r\n\r\n", msgSz);
|
||||||
|
msg[msgSz] = '\0';
|
||||||
|
}
|
||||||
|
if (CyaSSL_write(ssl, msg, msgSz) != msgSz)
|
||||||
|
err_sys("SSL_write failed");
|
||||||
|
|
||||||
|
input = CyaSSL_read(ssl, reply, sizeof(reply)-1);
|
||||||
|
if (input > 0) {
|
||||||
|
reply[input] = 0;
|
||||||
|
printf("Server response: %s\n", reply);
|
||||||
|
|
||||||
|
if (sendGET) { /* get html */
|
||||||
|
while (1) {
|
||||||
|
input = CyaSSL_read(ssl, reply, sizeof(reply)-1);
|
||||||
|
if (input > 0) {
|
||||||
|
reply[input] = 0;
|
||||||
|
printf("%s\n", reply);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (input < 0) {
|
||||||
|
int readErr = CyaSSL_get_error(ssl, 0);
|
||||||
|
if (readErr != SSL_ERROR_WANT_READ)
|
||||||
|
err_sys("CyaSSL_read failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef NO_SESSION_CACHE
|
||||||
|
if (resumeSession) {
|
||||||
|
if (doDTLS) {
|
||||||
|
strncpy(msg, "break", 6);
|
||||||
|
msgSz = (int)strlen(msg);
|
||||||
|
/* try to send session close */
|
||||||
|
CyaSSL_write(ssl, msg, msgSz);
|
||||||
|
}
|
||||||
|
session = CyaSSL_get_session(ssl);
|
||||||
|
sslResume = CyaSSL_new(ctx);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (doDTLS == 0) /* don't send alert after "break" command */
|
||||||
|
CyaSSL_shutdown(ssl); /* echoserver will interpret as new conn */
|
||||||
|
#ifdef ATOMIC_USER
|
||||||
|
if (atomicUser)
|
||||||
|
FreeAtomicUser(ssl);
|
||||||
|
#endif
|
||||||
|
CyaSSL_free(ssl);
|
||||||
|
CloseSocket(sockfd);
|
||||||
|
|
||||||
|
#ifndef NO_SESSION_CACHE
|
||||||
|
if (resumeSession) {
|
||||||
|
if (doDTLS) {
|
||||||
|
SOCKADDR_IN_T addr;
|
||||||
|
#ifdef USE_WINDOWS_API
|
||||||
|
Sleep(500);
|
||||||
|
#else
|
||||||
|
sleep(1);
|
||||||
|
#endif
|
||||||
|
build_addr(&addr, host, port, 1);
|
||||||
|
CyaSSL_dtls_set_peer(sslResume, &addr, sizeof(addr));
|
||||||
|
tcp_socket(&sockfd, 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tcp_connect(&sockfd, host, port, 0);
|
||||||
|
}
|
||||||
|
CyaSSL_set_fd(sslResume, sockfd);
|
||||||
|
CyaSSL_set_session(sslResume, session);
|
||||||
|
|
||||||
|
showPeer(sslResume);
|
||||||
|
#ifndef CYASSL_CALLBACKS
|
||||||
|
if (nonBlocking) {
|
||||||
|
CyaSSL_set_using_nonblock(sslResume, 1);
|
||||||
|
tcp_set_nonblocking(&sockfd);
|
||||||
|
NonBlockingSSL_Connect(sslResume);
|
||||||
|
}
|
||||||
|
else if (CyaSSL_connect(sslResume) != SSL_SUCCESS)
|
||||||
|
err_sys("SSL resume failed");
|
||||||
|
#else
|
||||||
|
timeout.tv_sec = 2;
|
||||||
|
timeout.tv_usec = 0;
|
||||||
|
NonBlockingSSL_Connect(ssl); /* will keep retrying on timeout */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (CyaSSL_session_reused(sslResume))
|
||||||
|
printf("reused session id\n");
|
||||||
|
else
|
||||||
|
printf("didn't reuse session id!!!\n");
|
||||||
|
|
||||||
|
if (CyaSSL_write(sslResume, resumeMsg, resumeSz) != resumeSz)
|
||||||
|
err_sys("SSL_write failed");
|
||||||
|
|
||||||
|
if (nonBlocking) {
|
||||||
|
/* give server a chance to bounce a message back to client */
|
||||||
|
#ifdef USE_WINDOWS_API
|
||||||
|
Sleep(500);
|
||||||
|
#else
|
||||||
|
sleep(1);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
input = CyaSSL_read(sslResume, reply, sizeof(reply)-1);
|
||||||
|
if (input > 0) {
|
||||||
|
reply[input] = 0;
|
||||||
|
printf("Server resume response: %s\n", reply);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* try to send session break */
|
||||||
|
CyaSSL_write(sslResume, msg, msgSz);
|
||||||
|
|
||||||
|
CyaSSL_shutdown(sslResume);
|
||||||
|
CyaSSL_free(sslResume);
|
||||||
|
CloseSocket(sockfd);
|
||||||
|
}
|
||||||
|
#endif /* NO_SESSION_CACHE */
|
||||||
|
|
||||||
|
CyaSSL_CTX_free(ctx);
|
||||||
|
|
||||||
|
((func_args*)args)->return_code = 0;
|
||||||
|
|
||||||
|
#ifdef USE_CYASSL_MEMORY
|
||||||
|
if (trackMemory)
|
||||||
|
ShowMemoryTracker();
|
||||||
|
#endif /* USE_CYASSL_MEMORY */
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* so overall tests can pull in test function */
|
||||||
|
#ifndef NO_MAIN_DRIVER
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
func_args args;
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
int ret = OpenNitroxDevice(CAVIUM_DIRECT, CAVIUM_DEV_ID);
|
||||||
|
if (ret != 0)
|
||||||
|
err_sys("Cavium OpenNitroxDevice failed");
|
||||||
|
#endif /* HAVE_CAVIUM */
|
||||||
|
|
||||||
|
StartTCP();
|
||||||
|
|
||||||
|
args.argc = argc;
|
||||||
|
args.argv = argv;
|
||||||
|
|
||||||
|
CyaSSL_Init();
|
||||||
|
#if defined(DEBUG_CYASSL) && !defined(CYASSL_MDK_SHELL) && !defined(STACK_TRAP)
|
||||||
|
CyaSSL_Debugging_ON();
|
||||||
|
#endif
|
||||||
|
if (CurrentDir("client"))
|
||||||
|
ChangeDirBack(2);
|
||||||
|
else if (CurrentDir("Debug") || CurrentDir("Release"))
|
||||||
|
ChangeDirBack(3);
|
||||||
|
|
||||||
|
#ifdef HAVE_STACK_SIZE
|
||||||
|
StackSizeCheck(&args, client_test);
|
||||||
|
#else
|
||||||
|
client_test(&args);
|
||||||
|
#endif
|
||||||
|
CyaSSL_Cleanup();
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
CspShutdown(CAVIUM_DEV_ID);
|
||||||
|
#endif
|
||||||
|
return args.return_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
int myoptind = 0;
|
||||||
|
char* myoptarg = NULL;
|
||||||
|
|
||||||
|
#endif /* NO_MAIN_DRIVER */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_CALLBACKS
|
||||||
|
|
||||||
|
int handShakeCB(HandShakeInfo* info)
|
||||||
|
{
|
||||||
|
(void)info;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int timeoutCB(TimeoutInfo* info)
|
||||||
|
{
|
||||||
|
(void)info;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,282 @@
|
||||||
|
/* echoclient.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/settings.h>
|
||||||
|
|
||||||
|
#include <cyassl/openssl/ssl.h>
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_ARM)
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK5)
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#include "rl_fs.h"
|
||||||
|
#include "rl_net.h"
|
||||||
|
#else
|
||||||
|
#include "rtl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/test.h>
|
||||||
|
|
||||||
|
#include "examples/echoclient/echoclient.h"
|
||||||
|
|
||||||
|
void echoclient_test(void* args)
|
||||||
|
{
|
||||||
|
SOCKET_T sockfd = 0;
|
||||||
|
|
||||||
|
FILE* fin = stdin ;
|
||||||
|
FILE* fout = stdout;
|
||||||
|
|
||||||
|
int inCreated = 0;
|
||||||
|
int outCreated = 0;
|
||||||
|
|
||||||
|
char msg[1024];
|
||||||
|
char reply[1024+1];
|
||||||
|
|
||||||
|
SSL_METHOD* method = 0;
|
||||||
|
SSL_CTX* ctx = 0;
|
||||||
|
SSL* ssl = 0;
|
||||||
|
|
||||||
|
int doDTLS = 0;
|
||||||
|
int doPSK = 0;
|
||||||
|
int sendSz;
|
||||||
|
int argc = 0;
|
||||||
|
char** argv = 0;
|
||||||
|
word16 port = yasslPort;
|
||||||
|
|
||||||
|
((func_args*)args)->return_code = -1; /* error state */
|
||||||
|
|
||||||
|
#ifndef CYASSL_MDK_SHELL
|
||||||
|
argc = ((func_args*)args)->argc;
|
||||||
|
argv = ((func_args*)args)->argv;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (argc >= 2) {
|
||||||
|
fin = fopen(argv[1], "r");
|
||||||
|
inCreated = 1;
|
||||||
|
}
|
||||||
|
if (argc >= 3) {
|
||||||
|
fout = fopen(argv[2], "w");
|
||||||
|
outCreated = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!fin) err_sys("can't open input file");
|
||||||
|
if (!fout) err_sys("can't open output file");
|
||||||
|
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
doDTLS = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LEANPSK
|
||||||
|
doPSK = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(NO_RSA) && !defined(HAVE_ECC)
|
||||||
|
doPSK = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(NO_MAIN_DRIVER) && !defined(USE_WINDOWS_API) && !defined(CYASSL_MDK_SHELL)
|
||||||
|
port = ((func_args*)args)->signal->port;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CYASSL_DTLS)
|
||||||
|
method = DTLSv1_client_method();
|
||||||
|
#elif !defined(NO_TLS)
|
||||||
|
method = CyaSSLv23_client_method();
|
||||||
|
#else
|
||||||
|
method = SSLv3_client_method();
|
||||||
|
#endif
|
||||||
|
ctx = SSL_CTX_new(method);
|
||||||
|
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#ifndef NO_RSA
|
||||||
|
if (SSL_CTX_load_verify_locations(ctx, caCert, 0) != SSL_SUCCESS)
|
||||||
|
err_sys("can't load ca file, Please run from CyaSSL home dir");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_ECC
|
||||||
|
if (SSL_CTX_load_verify_locations(ctx, eccCert, 0) != SSL_SUCCESS)
|
||||||
|
err_sys("can't load ca file, Please run from CyaSSL home dir");
|
||||||
|
#endif
|
||||||
|
#elif !defined(NO_CERTS)
|
||||||
|
if (!doPSK)
|
||||||
|
load_buffer(ctx, caCert, CYASSL_CA);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CYASSL_SNIFFER) && !defined(HAVE_NTRU) && !defined(HAVE_ECC)
|
||||||
|
/* don't use EDH, can't sniff tmp keys */
|
||||||
|
SSL_CTX_set_cipher_list(ctx, "AES256-SHA");
|
||||||
|
#endif
|
||||||
|
if (doPSK) {
|
||||||
|
#ifndef NO_PSK
|
||||||
|
const char *defaultCipherList;
|
||||||
|
|
||||||
|
CyaSSL_CTX_set_psk_client_callback(ctx, my_psk_client_cb);
|
||||||
|
#ifdef HAVE_NULL_CIPHER
|
||||||
|
defaultCipherList = "PSK-NULL-SHA256";
|
||||||
|
#else
|
||||||
|
defaultCipherList = "PSK-AES128-CBC-SHA256";
|
||||||
|
#endif
|
||||||
|
if (CyaSSL_CTX_set_cipher_list(ctx,defaultCipherList) !=SSL_SUCCESS)
|
||||||
|
err_sys("client can't set cipher list 2");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
|
SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_ARM)
|
||||||
|
CyaSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ssl = SSL_new(ctx);
|
||||||
|
|
||||||
|
|
||||||
|
if (doDTLS) {
|
||||||
|
SOCKADDR_IN_T addr;
|
||||||
|
build_addr(&addr, yasslIP, port, 1);
|
||||||
|
CyaSSL_dtls_set_peer(ssl, &addr, sizeof(addr));
|
||||||
|
tcp_socket(&sockfd, 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tcp_connect(&sockfd, yasslIP, port, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
SSL_set_fd(ssl, sockfd);
|
||||||
|
#if defined(USE_WINDOWS_API) && defined(CYASSL_DTLS) && defined(NO_MAIN_DRIVER)
|
||||||
|
/* let echoserver bind first, TODO: add Windows signal like pthreads does */
|
||||||
|
Sleep(100);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (SSL_connect(ssl) != SSL_SUCCESS) err_sys("SSL_connect failed");
|
||||||
|
|
||||||
|
while (fgets(msg, sizeof(msg), fin) != 0) {
|
||||||
|
|
||||||
|
sendSz = (int)strlen(msg);
|
||||||
|
|
||||||
|
if (SSL_write(ssl, msg, sendSz) != sendSz)
|
||||||
|
err_sys("SSL_write failed");
|
||||||
|
|
||||||
|
if (strncmp(msg, "quit", 4) == 0) {
|
||||||
|
fputs("sending server shutdown command: quit!\n", fout);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strncmp(msg, "break", 5) == 0) {
|
||||||
|
fputs("sending server session close: break!\n", fout);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef CYASSL_MDK_SHELL
|
||||||
|
while (sendSz) {
|
||||||
|
int got;
|
||||||
|
if ( (got = SSL_read(ssl, reply, sizeof(reply)-1)) > 0) {
|
||||||
|
reply[got] = 0;
|
||||||
|
fputs(reply, fout);
|
||||||
|
fflush(fout) ;
|
||||||
|
sendSz -= got;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
{
|
||||||
|
int got;
|
||||||
|
if ( (got = SSL_read(ssl, reply, sizeof(reply)-1)) > 0) {
|
||||||
|
reply[got] = 0;
|
||||||
|
fputs(reply, fout);
|
||||||
|
fflush(fout) ;
|
||||||
|
sendSz -= got;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
strncpy(msg, "break", 6);
|
||||||
|
sendSz = (int)strlen(msg);
|
||||||
|
/* try to tell server done */
|
||||||
|
SSL_write(ssl, msg, sendSz);
|
||||||
|
#else
|
||||||
|
SSL_shutdown(ssl);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
SSL_free(ssl);
|
||||||
|
SSL_CTX_free(ctx);
|
||||||
|
|
||||||
|
fflush(fout);
|
||||||
|
if (inCreated) fclose(fin);
|
||||||
|
if (outCreated) fclose(fout);
|
||||||
|
|
||||||
|
CloseSocket(sockfd);
|
||||||
|
((func_args*)args)->return_code = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* so overall tests can pull in test function */
|
||||||
|
#ifndef NO_MAIN_DRIVER
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
func_args args;
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
int ret = OpenNitroxDevice(CAVIUM_DIRECT, CAVIUM_DEV_ID);
|
||||||
|
if (ret != 0)
|
||||||
|
err_sys("Cavium OpenNitroxDevice failed");
|
||||||
|
#endif /* HAVE_CAVIUM */
|
||||||
|
|
||||||
|
StartTCP();
|
||||||
|
|
||||||
|
args.argc = argc;
|
||||||
|
args.argv = argv;
|
||||||
|
|
||||||
|
CyaSSL_Init();
|
||||||
|
#if defined(DEBUG_CYASSL) && !defined(CYASSL_MDK_SHELL)
|
||||||
|
CyaSSL_Debugging_ON();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (CurrentDir("echoclient"))
|
||||||
|
ChangeDirBack(2);
|
||||||
|
else if (CurrentDir("Debug") || CurrentDir("Release"))
|
||||||
|
ChangeDirBack(3);
|
||||||
|
echoclient_test(&args);
|
||||||
|
|
||||||
|
CyaSSL_Cleanup();
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
CspShutdown(CAVIUM_DEV_ID);
|
||||||
|
#endif
|
||||||
|
return args.return_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* NO_MAIN_DRIVER */
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,368 @@
|
||||||
|
/* echoserver.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/settings.h>
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_ARM)
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK5)
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#include "rl_fs.h"
|
||||||
|
#include "rl_net.h"
|
||||||
|
#else
|
||||||
|
#include "rtl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ssl.h>
|
||||||
|
#include <cyassl/test.h>
|
||||||
|
|
||||||
|
#ifndef NO_MAIN_DRIVER
|
||||||
|
#define ECHO_OUT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "examples/echoserver/echoserver.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef SESSION_STATS
|
||||||
|
CYASSL_API void PrintSessionStats(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SVR_COMMAND_SIZE 256
|
||||||
|
|
||||||
|
static void SignalReady(void* args, word16 port)
|
||||||
|
{
|
||||||
|
#if defined(_POSIX_THREADS) && defined(NO_MAIN_DRIVER) && !defined(__MINGW32__)
|
||||||
|
/* signal ready to tcp_accept */
|
||||||
|
func_args* server_args = (func_args*)args;
|
||||||
|
tcp_ready* ready = server_args->signal;
|
||||||
|
pthread_mutex_lock(&ready->mutex);
|
||||||
|
ready->ready = 1;
|
||||||
|
ready->port = port;
|
||||||
|
pthread_cond_signal(&ready->cond);
|
||||||
|
pthread_mutex_unlock(&ready->mutex);
|
||||||
|
#endif
|
||||||
|
(void)args;
|
||||||
|
(void)port;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
THREAD_RETURN CYASSL_THREAD echoserver_test(void* args)
|
||||||
|
{
|
||||||
|
SOCKET_T sockfd = 0;
|
||||||
|
CYASSL_METHOD* method = 0;
|
||||||
|
CYASSL_CTX* ctx = 0;
|
||||||
|
|
||||||
|
int doDTLS = 0;
|
||||||
|
int doPSK = 0;
|
||||||
|
int outCreated = 0;
|
||||||
|
int shutDown = 0;
|
||||||
|
int useAnyAddr = 0;
|
||||||
|
word16 port = yasslPort;
|
||||||
|
int argc = ((func_args*)args)->argc;
|
||||||
|
char** argv = ((func_args*)args)->argv;
|
||||||
|
|
||||||
|
#ifdef ECHO_OUT
|
||||||
|
FILE* fout = stdout;
|
||||||
|
if (argc >= 2) {
|
||||||
|
fout = fopen(argv[1], "w");
|
||||||
|
outCreated = 1;
|
||||||
|
}
|
||||||
|
if (!fout) err_sys("can't open output file");
|
||||||
|
#endif
|
||||||
|
(void)outCreated;
|
||||||
|
(void)argc;
|
||||||
|
(void)argv;
|
||||||
|
|
||||||
|
((func_args*)args)->return_code = -1; /* error state */
|
||||||
|
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
doDTLS = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LEANPSK
|
||||||
|
doPSK = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(NO_RSA) && !defined(HAVE_ECC)
|
||||||
|
doPSK = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(NO_MAIN_DRIVER) && !defined(USE_WINDOWS_API) && \
|
||||||
|
!defined(CYASSL_SNIFFER) && !defined(CYASSL_MDK_SHELL)
|
||||||
|
port = 0;
|
||||||
|
#endif
|
||||||
|
#if defined(USE_ANY_ADDR)
|
||||||
|
useAnyAddr = 1;
|
||||||
|
#endif
|
||||||
|
tcp_listen(&sockfd, &port, useAnyAddr, doDTLS);
|
||||||
|
|
||||||
|
#if defined(CYASSL_DTLS)
|
||||||
|
method = CyaDTLSv1_server_method();
|
||||||
|
#elif !defined(NO_TLS)
|
||||||
|
method = CyaSSLv23_server_method();
|
||||||
|
#else
|
||||||
|
method = CyaSSLv3_server_method();
|
||||||
|
#endif
|
||||||
|
ctx = CyaSSL_CTX_new(method);
|
||||||
|
/* CyaSSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_OFF); */
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
|
CyaSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
if (doPSK == 0) {
|
||||||
|
#ifdef HAVE_NTRU
|
||||||
|
/* ntru */
|
||||||
|
if (CyaSSL_CTX_use_certificate_file(ctx, ntruCert, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load ntru cert file, "
|
||||||
|
"Please run from CyaSSL home dir");
|
||||||
|
|
||||||
|
if (CyaSSL_CTX_use_NTRUPrivateKey_file(ctx, ntruKey)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load ntru key file, "
|
||||||
|
"Please run from CyaSSL home dir");
|
||||||
|
#elif defined(HAVE_ECC)
|
||||||
|
/* ecc */
|
||||||
|
if (CyaSSL_CTX_use_certificate_file(ctx, eccCert, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load server cert file, "
|
||||||
|
"Please run from CyaSSL home dir");
|
||||||
|
|
||||||
|
if (CyaSSL_CTX_use_PrivateKey_file(ctx, eccKey, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load server key file, "
|
||||||
|
"Please run from CyaSSL home dir");
|
||||||
|
#elif defined(NO_CERTS)
|
||||||
|
/* do nothing, just don't load cert files */
|
||||||
|
#else
|
||||||
|
/* normal */
|
||||||
|
if (CyaSSL_CTX_use_certificate_file(ctx, svrCert, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load server cert file, "
|
||||||
|
"Please run from CyaSSL home dir");
|
||||||
|
|
||||||
|
if (CyaSSL_CTX_use_PrivateKey_file(ctx, svrKey, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load server key file, "
|
||||||
|
"Please run from CyaSSL home dir");
|
||||||
|
#endif
|
||||||
|
} /* doPSK */
|
||||||
|
#elif !defined(NO_CERTS)
|
||||||
|
if (!doPSK) {
|
||||||
|
load_buffer(ctx, svrCert, CYASSL_CERT);
|
||||||
|
load_buffer(ctx, svrKey, CYASSL_KEY);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CYASSL_SNIFFER) && !defined(HAVE_NTRU) && !defined(HAVE_ECC)
|
||||||
|
/* don't use EDH, can't sniff tmp keys */
|
||||||
|
CyaSSL_CTX_set_cipher_list(ctx, "AES256-SHA");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (doPSK) {
|
||||||
|
#ifndef NO_PSK
|
||||||
|
const char *defaultCipherList;
|
||||||
|
|
||||||
|
CyaSSL_CTX_set_psk_server_callback(ctx, my_psk_server_cb);
|
||||||
|
CyaSSL_CTX_use_psk_identity_hint(ctx, "cyassl server");
|
||||||
|
#ifdef HAVE_NULL_CIPHER
|
||||||
|
defaultCipherList = "PSK-NULL-SHA256";
|
||||||
|
#else
|
||||||
|
defaultCipherList = "PSK-AES128-CBC-SHA256";
|
||||||
|
#endif
|
||||||
|
if (CyaSSL_CTX_set_cipher_list(ctx, defaultCipherList) != SSL_SUCCESS)
|
||||||
|
err_sys("server can't set cipher list 2");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
SignalReady(args, port);
|
||||||
|
|
||||||
|
while (!shutDown) {
|
||||||
|
CYASSL* ssl = 0;
|
||||||
|
char command[SVR_COMMAND_SIZE+1];
|
||||||
|
int echoSz = 0;
|
||||||
|
int clientfd;
|
||||||
|
int firstRead = 1;
|
||||||
|
int gotFirstG = 0;
|
||||||
|
|
||||||
|
#ifndef CYASSL_DTLS
|
||||||
|
SOCKADDR_IN_T client;
|
||||||
|
socklen_t client_len = sizeof(client);
|
||||||
|
clientfd = accept(sockfd, (struct sockaddr*)&client,
|
||||||
|
(ACCEPT_THIRD_T)&client_len);
|
||||||
|
#else
|
||||||
|
clientfd = udp_read_connect(sockfd);
|
||||||
|
#endif
|
||||||
|
if (clientfd == -1) err_sys("tcp accept failed");
|
||||||
|
|
||||||
|
ssl = CyaSSL_new(ctx);
|
||||||
|
if (ssl == NULL) err_sys("SSL_new failed");
|
||||||
|
CyaSSL_set_fd(ssl, clientfd);
|
||||||
|
#if !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA)
|
||||||
|
CyaSSL_SetTmpDH_file(ssl, dhParam, SSL_FILETYPE_PEM);
|
||||||
|
#elif !defined(NO_CERTS)
|
||||||
|
SetDH(ssl); /* will repick suites with DHE, higher than PSK */
|
||||||
|
#endif
|
||||||
|
if (CyaSSL_accept(ssl) != SSL_SUCCESS) {
|
||||||
|
printf("SSL_accept failed\n");
|
||||||
|
CyaSSL_free(ssl);
|
||||||
|
CloseSocket(clientfd);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
#if defined(PEER_INFO)
|
||||||
|
showPeer(ssl);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
while ( (echoSz = CyaSSL_read(ssl, command, sizeof(command)-1)) > 0) {
|
||||||
|
|
||||||
|
if (firstRead == 1) {
|
||||||
|
firstRead = 0; /* browser may send 1 byte 'G' to start */
|
||||||
|
if (echoSz == 1 && command[0] == 'G') {
|
||||||
|
gotFirstG = 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (gotFirstG == 1 && strncmp(command, "ET /", 4) == 0) {
|
||||||
|
strncpy(command, "GET", 4);
|
||||||
|
/* fall through to normal GET */
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( strncmp(command, "quit", 4) == 0) {
|
||||||
|
printf("client sent quit command: shutting down!\n");
|
||||||
|
shutDown = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ( strncmp(command, "break", 5) == 0) {
|
||||||
|
printf("client sent break command: closing session!\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#ifdef SESSION_STATS
|
||||||
|
if ( strncmp(command, "printstats", 10) == 0) {
|
||||||
|
PrintSessionStats();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if ( strncmp(command, "GET", 3) == 0) {
|
||||||
|
char type[] = "HTTP/1.0 200 ok\r\nContent-type:"
|
||||||
|
" text/html\r\n\r\n";
|
||||||
|
char header[] = "<html><body BGCOLOR=\"#ffffff\">\n<pre>\n";
|
||||||
|
char body[] = "greetings from CyaSSL\n";
|
||||||
|
char footer[] = "</body></html>\r\n\r\n";
|
||||||
|
|
||||||
|
strncpy(command, type, sizeof(type));
|
||||||
|
echoSz = sizeof(type) - 1;
|
||||||
|
|
||||||
|
strncpy(&command[echoSz], header, sizeof(header));
|
||||||
|
echoSz += (int)sizeof(header) - 1;
|
||||||
|
strncpy(&command[echoSz], body, sizeof(body));
|
||||||
|
echoSz += (int)sizeof(body) - 1;
|
||||||
|
strncpy(&command[echoSz], footer, sizeof(footer));
|
||||||
|
echoSz += (int)sizeof(footer);
|
||||||
|
|
||||||
|
if (CyaSSL_write(ssl, command, echoSz) != echoSz)
|
||||||
|
err_sys("SSL_write failed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
command[echoSz] = 0;
|
||||||
|
|
||||||
|
#ifdef ECHO_OUT
|
||||||
|
fputs(command, fout);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (CyaSSL_write(ssl, command, echoSz) != echoSz)
|
||||||
|
err_sys("SSL_write failed");
|
||||||
|
}
|
||||||
|
#ifndef CYASSL_DTLS
|
||||||
|
CyaSSL_shutdown(ssl);
|
||||||
|
#endif
|
||||||
|
CyaSSL_free(ssl);
|
||||||
|
CloseSocket(clientfd);
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
tcp_listen(&sockfd, &port, useAnyAddr, doDTLS);
|
||||||
|
SignalReady(args, port);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
CloseSocket(sockfd);
|
||||||
|
CyaSSL_CTX_free(ctx);
|
||||||
|
|
||||||
|
#ifdef ECHO_OUT
|
||||||
|
if (outCreated)
|
||||||
|
fclose(fout);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
((func_args*)args)->return_code = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* so overall tests can pull in test function */
|
||||||
|
#ifndef NO_MAIN_DRIVER
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
func_args args;
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
int ret = OpenNitroxDevice(CAVIUM_DIRECT, CAVIUM_DEV_ID);
|
||||||
|
if (ret != 0)
|
||||||
|
err_sys("Cavium OpenNitroxDevice failed");
|
||||||
|
#endif /* HAVE_CAVIUM */
|
||||||
|
|
||||||
|
StartTCP();
|
||||||
|
|
||||||
|
args.argc = argc;
|
||||||
|
args.argv = argv;
|
||||||
|
|
||||||
|
CyaSSL_Init();
|
||||||
|
#if defined(DEBUG_CYASSL) && !defined(CYASSL_MDK_SHELL)
|
||||||
|
CyaSSL_Debugging_ON();
|
||||||
|
#endif
|
||||||
|
if (CurrentDir("echoserver"))
|
||||||
|
ChangeDirBack(2);
|
||||||
|
else if (CurrentDir("Debug") || CurrentDir("Release"))
|
||||||
|
ChangeDirBack(3);
|
||||||
|
echoserver_test(&args);
|
||||||
|
CyaSSL_Cleanup();
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
CspShutdown(CAVIUM_DEV_ID);
|
||||||
|
#endif
|
||||||
|
return args.return_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* NO_MAIN_DRIVER */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,102 @@
|
||||||
|
/* main.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
#include <cyassl/ctaocrypt/logging.h>
|
||||||
|
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#if !defined(NO_FILESYSTEM)
|
||||||
|
#include "rl_fs.h"
|
||||||
|
#endif
|
||||||
|
#include "rl_net.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
#include <cyassl/ssl.h>
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* Initialize a Flash Memory Card
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
#if !defined(NO_FILESYSTEM)
|
||||||
|
static void init_filesystem (void) {
|
||||||
|
int32_t retv;
|
||||||
|
|
||||||
|
retv = finit ("M0:");
|
||||||
|
if (retv == 0) {
|
||||||
|
retv = fmount ("M0:");
|
||||||
|
if (retv == 0) {
|
||||||
|
printf ("Drive M0 ready!\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf ("Drive M0 mount failed!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf ("Drive M0 initialization failed!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* TCP/IP tasks
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
void tcp_poll (void const *arg)
|
||||||
|
{
|
||||||
|
CYASSL_MSG("TCP polling started.\n") ;
|
||||||
|
while (1) {
|
||||||
|
net_main ();
|
||||||
|
osDelay(1) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extern void shell_main(void * args) ;
|
||||||
|
extern void init_time(void) ;
|
||||||
|
|
||||||
|
osThreadDef (tcp_poll, osPriorityHigh, 1, 0) ;
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* mian entry
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
int myoptind = 0;
|
||||||
|
char* myoptarg = NULL;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
void *arg = NULL ;
|
||||||
|
|
||||||
|
#if !defined(NO_FILESYSTEM)
|
||||||
|
init_filesystem ();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
net_initialize() ;
|
||||||
|
|
||||||
|
osThreadCreate (osThread (tcp_poll), NULL);
|
||||||
|
osDelay(10000) ; /* wait for DHCP */
|
||||||
|
#if defined(DEBUG_CYASSL)
|
||||||
|
printf("Turning ON Debug message\n") ;
|
||||||
|
CyaSSL_Debugging_ON() ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
shell_main(arg) ;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,604 @@
|
||||||
|
/* server.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/settings.h>
|
||||||
|
|
||||||
|
#if !defined(CYASSL_TRACK_MEMORY) && !defined(NO_MAIN_DRIVER)
|
||||||
|
/* in case memory tracker wants stats */
|
||||||
|
#define CYASSL_TRACK_MEMORY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_ARM)
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK5)
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#include "rl_fs.h"
|
||||||
|
#include "rl_net.h"
|
||||||
|
#else
|
||||||
|
#include "rtl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
#endif
|
||||||
|
#include <cyassl/openssl/ssl.h>
|
||||||
|
#include <cyassl/test.h>
|
||||||
|
|
||||||
|
#include "examples/server/server.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_CALLBACKS
|
||||||
|
int srvHandShakeCB(HandShakeInfo*);
|
||||||
|
int srvTimeoutCB(TimeoutInfo*);
|
||||||
|
Timeval srvTo;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static void NonBlockingSSL_Accept(SSL* ssl)
|
||||||
|
{
|
||||||
|
#ifndef CYASSL_CALLBACKS
|
||||||
|
int ret = SSL_accept(ssl);
|
||||||
|
#else
|
||||||
|
int ret = CyaSSL_accept_ex(ssl, srvHandShakeCB, srvTimeoutCB, srvTo);
|
||||||
|
#endif
|
||||||
|
int error = SSL_get_error(ssl, 0);
|
||||||
|
SOCKET_T sockfd = (SOCKET_T)CyaSSL_get_fd(ssl);
|
||||||
|
int select_ret;
|
||||||
|
|
||||||
|
while (ret != SSL_SUCCESS && (error == SSL_ERROR_WANT_READ ||
|
||||||
|
error == SSL_ERROR_WANT_WRITE)) {
|
||||||
|
int currTimeout = 1;
|
||||||
|
|
||||||
|
if (error == SSL_ERROR_WANT_READ)
|
||||||
|
printf("... server would read block\n");
|
||||||
|
else
|
||||||
|
printf("... server would write block\n");
|
||||||
|
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
currTimeout = CyaSSL_dtls_get_current_timeout(ssl);
|
||||||
|
#endif
|
||||||
|
select_ret = tcp_select(sockfd, currTimeout);
|
||||||
|
|
||||||
|
if ((select_ret == TEST_RECV_READY) ||
|
||||||
|
(select_ret == TEST_ERROR_READY)) {
|
||||||
|
#ifndef CYASSL_CALLBACKS
|
||||||
|
ret = SSL_accept(ssl);
|
||||||
|
#else
|
||||||
|
ret = CyaSSL_accept_ex(ssl,
|
||||||
|
srvHandShakeCB, srvTimeoutCB, srvTo);
|
||||||
|
#endif
|
||||||
|
error = SSL_get_error(ssl, 0);
|
||||||
|
}
|
||||||
|
else if (select_ret == TEST_TIMEOUT && !CyaSSL_dtls(ssl)) {
|
||||||
|
error = SSL_ERROR_WANT_READ;
|
||||||
|
}
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
else if (select_ret == TEST_TIMEOUT && CyaSSL_dtls(ssl) &&
|
||||||
|
CyaSSL_dtls_got_timeout(ssl) >= 0) {
|
||||||
|
error = SSL_ERROR_WANT_READ;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
else {
|
||||||
|
error = SSL_FATAL_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ret != SSL_SUCCESS)
|
||||||
|
err_sys("SSL_accept failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void Usage(void)
|
||||||
|
{
|
||||||
|
printf("server " LIBCYASSL_VERSION_STRING
|
||||||
|
" NOTE: All files relative to CyaSSL home dir\n");
|
||||||
|
printf("-? Help, print this usage\n");
|
||||||
|
printf("-p <num> Port to listen on, not 0, default %d\n", yasslPort);
|
||||||
|
printf("-v <num> SSL version [0-3], SSLv3(0) - TLS1.2(3)), default %d\n",
|
||||||
|
SERVER_DEFAULT_VERSION);
|
||||||
|
printf("-l <str> Cipher list\n");
|
||||||
|
printf("-c <file> Certificate file, default %s\n", svrCert);
|
||||||
|
printf("-k <file> Key file, default %s\n", svrKey);
|
||||||
|
printf("-A <file> Certificate Authority file, default %s\n", cliCert);
|
||||||
|
printf("-d Disable client cert check\n");
|
||||||
|
printf("-b Bind to any interface instead of localhost only\n");
|
||||||
|
printf("-s Use pre Shared keys\n");
|
||||||
|
printf("-t Track CyaSSL memory use\n");
|
||||||
|
printf("-u Use UDP DTLS,"
|
||||||
|
" add -v 2 for DTLSv1 (default), -v 3 for DTLSv1.2\n");
|
||||||
|
printf("-f Fewer packets/group messages\n");
|
||||||
|
printf("-N Use Non-blocking sockets\n");
|
||||||
|
printf("-S <str> Use Host Name Indication\n");
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
printf("-o Perform OCSP lookup on peer certificate\n");
|
||||||
|
printf("-O <url> Perform OCSP lookup using <url> as responder\n");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|
printf("-P Public Key Callbacks\n");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
THREAD_RETURN CYASSL_THREAD server_test(void* args)
|
||||||
|
{
|
||||||
|
SOCKET_T sockfd = 0;
|
||||||
|
SOCKET_T clientfd = 0;
|
||||||
|
|
||||||
|
SSL_METHOD* method = 0;
|
||||||
|
SSL_CTX* ctx = 0;
|
||||||
|
SSL* ssl = 0;
|
||||||
|
|
||||||
|
char msg[] = "I hear you fa shizzle!";
|
||||||
|
char input[80];
|
||||||
|
int idx;
|
||||||
|
int ch;
|
||||||
|
int version = SERVER_DEFAULT_VERSION;
|
||||||
|
int doCliCertCheck = 0; /* = 0 for no Realtime Clock environment */
|
||||||
|
int useAnyAddr = 0;
|
||||||
|
word16 port = yasslPort;
|
||||||
|
int usePsk = 0;
|
||||||
|
int doDTLS = 0;
|
||||||
|
int useNtruKey = 0;
|
||||||
|
int nonBlocking = 0;
|
||||||
|
int trackMemory = 0;
|
||||||
|
int fewerPackets = 0;
|
||||||
|
int pkCallbacks = 0;
|
||||||
|
char* cipherList = NULL;
|
||||||
|
char* verifyCert = (char*)cliCert;
|
||||||
|
char* ourCert = (char*)svrCert;
|
||||||
|
char* ourKey = (char*)svrKey;
|
||||||
|
int argc = ((func_args*)args)->argc;
|
||||||
|
char** argv = ((func_args*)args)->argv;
|
||||||
|
|
||||||
|
#ifdef HAVE_SNI
|
||||||
|
char* sniHostName = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
int useOcsp = 0;
|
||||||
|
char* ocspUrl = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
((func_args*)args)->return_code = -1; /* error state */
|
||||||
|
|
||||||
|
#ifdef NO_RSA
|
||||||
|
verifyCert = (char*)cliEccCert;
|
||||||
|
ourCert = (char*)eccCert;
|
||||||
|
ourKey = (char*)eccKey;
|
||||||
|
#endif
|
||||||
|
(void)trackMemory;
|
||||||
|
(void)pkCallbacks;
|
||||||
|
|
||||||
|
while ((ch = mygetopt(argc, argv, "?dbstnNufPp:v:l:A:c:k:S:oO:")) != -1) {
|
||||||
|
switch (ch) {
|
||||||
|
case '?' :
|
||||||
|
Usage();
|
||||||
|
exit(EXIT_SUCCESS);
|
||||||
|
|
||||||
|
case 'd' :
|
||||||
|
doCliCertCheck = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'b' :
|
||||||
|
useAnyAddr = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 's' :
|
||||||
|
usePsk = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 't' :
|
||||||
|
#ifdef USE_CYASSL_MEMORY
|
||||||
|
trackMemory = 1;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'n' :
|
||||||
|
useNtruKey = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'u' :
|
||||||
|
doDTLS = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'f' :
|
||||||
|
fewerPackets = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'P' :
|
||||||
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|
pkCallbacks = 1;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'p' :
|
||||||
|
port = (word16)atoi(myoptarg);
|
||||||
|
#if !defined(NO_MAIN_DRIVER) || defined(USE_WINDOWS_API)
|
||||||
|
if (port == 0)
|
||||||
|
err_sys("port number cannot be 0");
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'v' :
|
||||||
|
version = atoi(myoptarg);
|
||||||
|
if (version < 0 || version > 3) {
|
||||||
|
Usage();
|
||||||
|
exit(MY_EX_USAGE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'l' :
|
||||||
|
cipherList = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'A' :
|
||||||
|
verifyCert = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'c' :
|
||||||
|
ourCert = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'k' :
|
||||||
|
ourKey = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'N':
|
||||||
|
nonBlocking = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'S' :
|
||||||
|
#ifdef HAVE_SNI
|
||||||
|
sniHostName = myoptarg;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'o' :
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
useOcsp = 1;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'O' :
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
useOcsp = 1;
|
||||||
|
ocspUrl = myoptarg;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
Usage();
|
||||||
|
exit(MY_EX_USAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
myoptind = 0; /* reset for test cases */
|
||||||
|
|
||||||
|
/* sort out DTLS versus TLS versions */
|
||||||
|
if (version == CLIENT_INVALID_VERSION) {
|
||||||
|
if (doDTLS)
|
||||||
|
version = CLIENT_DTLS_DEFAULT_VERSION;
|
||||||
|
else
|
||||||
|
version = CLIENT_DEFAULT_VERSION;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (doDTLS) {
|
||||||
|
if (version == 3)
|
||||||
|
version = -2;
|
||||||
|
else
|
||||||
|
version = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef USE_CYASSL_MEMORY
|
||||||
|
if (trackMemory)
|
||||||
|
InitMemoryTracker();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
switch (version) {
|
||||||
|
#ifndef NO_OLD_TLS
|
||||||
|
case 0:
|
||||||
|
method = SSLv3_server_method();
|
||||||
|
break;
|
||||||
|
|
||||||
|
#ifndef NO_TLS
|
||||||
|
case 1:
|
||||||
|
method = TLSv1_server_method();
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
method = TLSv1_1_server_method();
|
||||||
|
break;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_TLS
|
||||||
|
case 3:
|
||||||
|
method = TLSv1_2_server_method();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
case -1:
|
||||||
|
method = DTLSv1_server_method();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case -2:
|
||||||
|
method = DTLSv1_2_server_method();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
default:
|
||||||
|
err_sys("Bad SSL version");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (method == NULL)
|
||||||
|
err_sys("unable to get method");
|
||||||
|
|
||||||
|
ctx = SSL_CTX_new(method);
|
||||||
|
if (ctx == NULL)
|
||||||
|
err_sys("unable to get ctx");
|
||||||
|
|
||||||
|
if (cipherList)
|
||||||
|
if (SSL_CTX_set_cipher_list(ctx, cipherList) != SSL_SUCCESS)
|
||||||
|
err_sys("server can't set cipher list 1");
|
||||||
|
|
||||||
|
#ifdef CYASSL_LEANPSK
|
||||||
|
usePsk = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(NO_RSA) && !defined(HAVE_ECC)
|
||||||
|
usePsk = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (fewerPackets)
|
||||||
|
CyaSSL_CTX_set_group_messages(ctx);
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
|
SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
|
||||||
|
if (!usePsk) {
|
||||||
|
if (SSL_CTX_use_certificate_file(ctx, ourCert, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load server cert file, check file and run from"
|
||||||
|
" CyaSSL home dir");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_NTRU
|
||||||
|
if (useNtruKey) {
|
||||||
|
if (CyaSSL_CTX_use_NTRUPrivateKey_file(ctx, ourKey)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load ntru key file, "
|
||||||
|
"Please run from CyaSSL home dir");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
|
||||||
|
if (!useNtruKey && !usePsk) {
|
||||||
|
if (SSL_CTX_use_PrivateKey_file(ctx, ourKey, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load server private key file, check file and run "
|
||||||
|
"from CyaSSL home dir");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (usePsk) {
|
||||||
|
#ifndef NO_PSK
|
||||||
|
SSL_CTX_set_psk_server_callback(ctx, my_psk_server_cb);
|
||||||
|
SSL_CTX_use_psk_identity_hint(ctx, "cyassl server");
|
||||||
|
if (cipherList == NULL) {
|
||||||
|
const char *defaultCipherList;
|
||||||
|
#ifdef HAVE_NULL_CIPHER
|
||||||
|
defaultCipherList = "PSK-NULL-SHA256";
|
||||||
|
#else
|
||||||
|
defaultCipherList = "PSK-AES128-CBC-SHA256";
|
||||||
|
#endif
|
||||||
|
if (SSL_CTX_set_cipher_list(ctx, defaultCipherList) != SSL_SUCCESS)
|
||||||
|
err_sys("server can't set cipher list 2");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
|
||||||
|
/* if not using PSK, verify peer with certs */
|
||||||
|
if (doCliCertCheck && usePsk == 0) {
|
||||||
|
SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER |
|
||||||
|
SSL_VERIFY_FAIL_IF_NO_PEER_CERT,0);
|
||||||
|
if (SSL_CTX_load_verify_locations(ctx, verifyCert, 0) != SSL_SUCCESS)
|
||||||
|
err_sys("can't load ca file, Please run from CyaSSL home dir");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CYASSL_SNIFFER) && !defined(HAVE_NTRU) && !defined(HAVE_ECC)
|
||||||
|
/* don't use EDH, can't sniff tmp keys */
|
||||||
|
if (cipherList == NULL) {
|
||||||
|
if (SSL_CTX_set_cipher_list(ctx, "AES256-SHA256") != SSL_SUCCESS)
|
||||||
|
err_sys("server can't set cipher list 3");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SNI
|
||||||
|
if (sniHostName)
|
||||||
|
if (CyaSSL_CTX_UseSNI(ctx, CYASSL_SNI_HOST_NAME, sniHostName,
|
||||||
|
XSTRLEN(sniHostName)) != SSL_SUCCESS)
|
||||||
|
err_sys("UseSNI failed");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ssl = SSL_new(ctx);
|
||||||
|
if (ssl == NULL)
|
||||||
|
err_sys("unable to get SSL");
|
||||||
|
|
||||||
|
#ifdef HAVE_CRL
|
||||||
|
CyaSSL_EnableCRL(ssl, 0);
|
||||||
|
CyaSSL_LoadCRL(ssl, crlPemDir, SSL_FILETYPE_PEM, CYASSL_CRL_MONITOR |
|
||||||
|
CYASSL_CRL_START_MON);
|
||||||
|
CyaSSL_SetCRL_Cb(ssl, CRL_CallBack);
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
if (useOcsp) {
|
||||||
|
if (ocspUrl != NULL) {
|
||||||
|
CyaSSL_CTX_SetOCSP_OverrideURL(ctx, ocspUrl);
|
||||||
|
CyaSSL_CTX_EnableOCSP(ctx, CYASSL_OCSP_NO_NONCE
|
||||||
|
| CYASSL_OCSP_URL_OVERRIDE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
CyaSSL_CTX_EnableOCSP(ctx, CYASSL_OCSP_NO_NONCE);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|
if (pkCallbacks)
|
||||||
|
SetupPkCallbacks(ctx, ssl);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
tcp_accept(&sockfd, &clientfd, (func_args*)args, port, useAnyAddr, doDTLS);
|
||||||
|
if (!doDTLS)
|
||||||
|
CloseSocket(sockfd);
|
||||||
|
|
||||||
|
SSL_set_fd(ssl, clientfd);
|
||||||
|
if (usePsk == 0) {
|
||||||
|
#if !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA)
|
||||||
|
CyaSSL_SetTmpDH_file(ssl, dhParam, SSL_FILETYPE_PEM);
|
||||||
|
#elif !defined(NO_CERTS)
|
||||||
|
SetDH(ssl); /* repick suites with DHE, higher priority than PSK */
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef CYASSL_CALLBACKS
|
||||||
|
if (nonBlocking) {
|
||||||
|
CyaSSL_set_using_nonblock(ssl, 1);
|
||||||
|
tcp_set_nonblocking(&clientfd);
|
||||||
|
NonBlockingSSL_Accept(ssl);
|
||||||
|
} else if (SSL_accept(ssl) != SSL_SUCCESS) {
|
||||||
|
int err = SSL_get_error(ssl, 0);
|
||||||
|
char buffer[CYASSL_MAX_ERROR_SZ];
|
||||||
|
printf("error = %d, %s\n", err, ERR_error_string(err, buffer));
|
||||||
|
err_sys("SSL_accept failed");
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
NonBlockingSSL_Accept(ssl);
|
||||||
|
#endif
|
||||||
|
showPeer(ssl);
|
||||||
|
|
||||||
|
idx = SSL_read(ssl, input, sizeof(input)-1);
|
||||||
|
if (idx > 0) {
|
||||||
|
input[idx] = 0;
|
||||||
|
printf("Client message: %s\n", input);
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (idx < 0) {
|
||||||
|
int readErr = SSL_get_error(ssl, 0);
|
||||||
|
if (readErr != SSL_ERROR_WANT_READ)
|
||||||
|
err_sys("SSL_read failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SSL_write(ssl, msg, sizeof(msg)) != sizeof(msg))
|
||||||
|
err_sys("SSL_write failed");
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_SHELL) && defined(HAVE_MDK_RTX)
|
||||||
|
os_dly_wait(500) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
SSL_shutdown(ssl);
|
||||||
|
SSL_free(ssl);
|
||||||
|
SSL_CTX_free(ctx);
|
||||||
|
|
||||||
|
CloseSocket(clientfd);
|
||||||
|
((func_args*)args)->return_code = 0;
|
||||||
|
|
||||||
|
#ifdef USE_CYASSL_MEMORY
|
||||||
|
if (trackMemory)
|
||||||
|
ShowMemoryTracker();
|
||||||
|
#endif /* USE_CYASSL_MEMORY */
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* so overall tests can pull in test function */
|
||||||
|
#ifndef NO_MAIN_DRIVER
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
func_args args;
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
int ret = OpenNitroxDevice(CAVIUM_DIRECT, CAVIUM_DEV_ID);
|
||||||
|
if (ret != 0)
|
||||||
|
err_sys("Cavium OpenNitroxDevice failed");
|
||||||
|
#endif /* HAVE_CAVIUM */
|
||||||
|
|
||||||
|
StartTCP();
|
||||||
|
|
||||||
|
args.argc = argc;
|
||||||
|
args.argv = argv;
|
||||||
|
|
||||||
|
CyaSSL_Init();
|
||||||
|
#if defined(DEBUG_CYASSL) && !defined(CYASSL_MDK_SHELL)
|
||||||
|
CyaSSL_Debugging_ON();
|
||||||
|
#endif
|
||||||
|
if (CurrentDir("server"))
|
||||||
|
ChangeDirBack(2);
|
||||||
|
else if (CurrentDir("Debug") || CurrentDir("Release"))
|
||||||
|
ChangeDirBack(3);
|
||||||
|
|
||||||
|
#ifdef HAVE_STACK_SIZE
|
||||||
|
StackSizeCheck(&args, server_test);
|
||||||
|
#else
|
||||||
|
server_test(&args);
|
||||||
|
#endif
|
||||||
|
CyaSSL_Cleanup();
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
CspShutdown(CAVIUM_DEV_ID);
|
||||||
|
#endif
|
||||||
|
return args.return_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
int myoptind = 0;
|
||||||
|
char* myoptarg = NULL;
|
||||||
|
|
||||||
|
#endif /* NO_MAIN_DRIVER */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_CALLBACKS
|
||||||
|
|
||||||
|
int srvHandShakeCB(HandShakeInfo* info)
|
||||||
|
{
|
||||||
|
(void)info;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int srvTimeoutCB(TimeoutInfo* info)
|
||||||
|
{
|
||||||
|
(void)info;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,657 @@
|
||||||
|
/*shell.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*** tiny Shell for CyaSSL apps ***/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "cyassl/internal.h"
|
||||||
|
#undef RNG
|
||||||
|
#include <cyassl/ctaocrypt/logging.h>
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_ARM)
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#if defined(CYASSL_MDK5)
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#include "rl_fs.h"
|
||||||
|
#else
|
||||||
|
#include <rtl.h>
|
||||||
|
#endif
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_KEIL_NET
|
||||||
|
#include "cyassl/test.h"
|
||||||
|
#else
|
||||||
|
typedef struct func_args {
|
||||||
|
int argc;
|
||||||
|
char** argv;
|
||||||
|
int return_code;
|
||||||
|
} func_args;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NO_ECHOCLIENT
|
||||||
|
#define echoclient_test command_not_found
|
||||||
|
#endif
|
||||||
|
#ifdef NO_ECHOSERVER
|
||||||
|
#define echoserver_test command_not_found
|
||||||
|
#endif
|
||||||
|
#ifdef NO_SIMPLE_CLIENT
|
||||||
|
#define client_test command_not_found
|
||||||
|
#endif
|
||||||
|
#ifdef NO_SIMPLE_SERVER
|
||||||
|
#define server_test command_not_found
|
||||||
|
#endif
|
||||||
|
#ifdef NO_CRYPT_BENCHMARK
|
||||||
|
#define benchmark_test command_not_found
|
||||||
|
#endif
|
||||||
|
#ifdef NO_CRYPT_TEST
|
||||||
|
#define ctaocrypt_test command_not_found
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CYASSL_KEIL_NET
|
||||||
|
#define ipaddr_comm command_not_found
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(HAVE_KEIL_RTX)
|
||||||
|
#define stack_comm command_not_found
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if !defined(DEBUG_CYASSL)
|
||||||
|
#define dbg_comm command_not_found
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
void command_not_found(void *argv) {
|
||||||
|
printf("Command not found\n") ;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern void echoclient_test(void *args) ;
|
||||||
|
extern void echoserver_test(void *args) ;
|
||||||
|
extern void benchmark_test(void *args) ;
|
||||||
|
extern void ctaocrypt_test(void *args) ;
|
||||||
|
extern void client_test(void *args) ;
|
||||||
|
extern void server_test(void *args) ;
|
||||||
|
extern void kill_task(void *args) ;
|
||||||
|
extern void ipaddr_comm(void *args) ;
|
||||||
|
extern void stack_comm(void *args) ;
|
||||||
|
extern void for_command(void *args) ;
|
||||||
|
extern void dbg_comm(void *arg) ;
|
||||||
|
extern void help_comm(void *arg) ;
|
||||||
|
|
||||||
|
#if !defined(NO_CRYPT_TEST)
|
||||||
|
|
||||||
|
#ifndef NO_MD5
|
||||||
|
extern void md5_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_MD2
|
||||||
|
extern void md2_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
#ifndef NO_MD4
|
||||||
|
extern void md4_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern void sha_test(void *arg) ;
|
||||||
|
|
||||||
|
#ifndef NO_SHA256
|
||||||
|
extern void sha256_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_SHA384
|
||||||
|
extern void sha384_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_SHA512
|
||||||
|
extern void sha512_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_RIPEMD
|
||||||
|
extern void ripemd_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
#ifndef NO_HMAC
|
||||||
|
#ifndef NO_MD5
|
||||||
|
extern void hmac_md5_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
extern void hmac_sha_test(void *arg) ;
|
||||||
|
|
||||||
|
#ifndef NO_SHA256
|
||||||
|
extern void hmac_sha256_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_SHA384
|
||||||
|
extern void hmac_sha384_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifndef NO_RC4
|
||||||
|
extern void arc4_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_HC128
|
||||||
|
extern void hc128_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_RABBIT
|
||||||
|
extern void rabbit_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_DES3
|
||||||
|
extern void des_test(void *arg) ;
|
||||||
|
extern void des3_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_AES
|
||||||
|
extern void aes_test(void *arg) ;
|
||||||
|
#ifdef HAVE_AESGCM
|
||||||
|
extern void aesgcm_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_AESCCM
|
||||||
|
extern void aesccm_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CAMELLIA
|
||||||
|
extern void camellia_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
extern void random_test(void *arg) ;
|
||||||
|
|
||||||
|
#ifndef NO_RSA
|
||||||
|
extern void rsa_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_DH
|
||||||
|
extern void dh_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_DSA
|
||||||
|
extern void dsa_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_PWDBASED
|
||||||
|
extern void pwdbased_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef OPENSSL_EXTRA
|
||||||
|
extern void openssl_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_ECC
|
||||||
|
extern void ecc_test(void *arg) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* NO_CRYPT_TEST */
|
||||||
|
|
||||||
|
static struct {
|
||||||
|
const char *command ;
|
||||||
|
void (*func)(void *args) ;
|
||||||
|
} commandTable[] = {
|
||||||
|
"echoclient", echoclient_test,
|
||||||
|
"echoserver", echoserver_test,
|
||||||
|
"benchmark", benchmark_test,
|
||||||
|
"test", ctaocrypt_test,
|
||||||
|
"client", client_test,
|
||||||
|
"server", server_test,
|
||||||
|
"ipaddr", ipaddr_comm, /* TBD */
|
||||||
|
"stack", stack_comm, /* On/Off check stack size */
|
||||||
|
"for", for_command, /* iterate next command X times */
|
||||||
|
"debug", dbg_comm, /* On/Off debug message */
|
||||||
|
"help", help_comm, /* Breif description about the commands */
|
||||||
|
|
||||||
|
/** short name **/
|
||||||
|
"ec", echoclient_test,
|
||||||
|
"es", echoserver_test,
|
||||||
|
"bm", benchmark_test,
|
||||||
|
"te", ctaocrypt_test,
|
||||||
|
"cl", client_test,
|
||||||
|
"sv", server_test,
|
||||||
|
"ip", ipaddr_comm,
|
||||||
|
"st", stack_comm,
|
||||||
|
"dbg", dbg_comm,
|
||||||
|
"?", help_comm,
|
||||||
|
|
||||||
|
/*** test suites ****/
|
||||||
|
#if !defined(NO_CRYPT_TEST)
|
||||||
|
#ifndef NO_MD5
|
||||||
|
"md5", md5_test,
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_MD2
|
||||||
|
"md2", md2_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_MD4
|
||||||
|
"md4", md4_test,
|
||||||
|
#endif
|
||||||
|
"sha", sha_test,
|
||||||
|
#ifndef NO_SHA256
|
||||||
|
"sha256", sha256_test,
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_SHA384
|
||||||
|
"sha384", sha384_test,
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_SHA512
|
||||||
|
"sha512", sha512_test,
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_RIPEMD
|
||||||
|
"ripemd", ripemd_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_HMAC
|
||||||
|
#ifndef NO_MD5
|
||||||
|
"hmac_md5", hmac_md5_test,
|
||||||
|
#endif
|
||||||
|
"hmac_sha", hmac_sha_test,
|
||||||
|
#ifndef NO_SHA256
|
||||||
|
"hmac_sha256", hmac_sha256_test,
|
||||||
|
#endif
|
||||||
|
#ifdef CYASSL_SHA384
|
||||||
|
"hmac_sha384", hmac_sha384_test,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifndef NO_RC4
|
||||||
|
"arc4", arc4_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_HC128
|
||||||
|
"hc128", hc128_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_RABBIT
|
||||||
|
"rabbit", rabbit_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DES3
|
||||||
|
"des", des_test,
|
||||||
|
"des3", des3_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_AES
|
||||||
|
"aes", aes_test,
|
||||||
|
#ifdef HAVE_AESGCM
|
||||||
|
"aesgcm", aesgcm_test,
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_AESCCM
|
||||||
|
"aesccm", aesccm_test,
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CAMELLIA
|
||||||
|
"camellia", camellia_test,
|
||||||
|
#endif
|
||||||
|
"random", random_test,
|
||||||
|
#ifndef NO_RSA
|
||||||
|
"rsa", rsa_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DH
|
||||||
|
"dh", dh_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DSA
|
||||||
|
"dsa", dsa_test,
|
||||||
|
#endif
|
||||||
|
#ifndef NO_PWDBASED
|
||||||
|
"pwdbased", pwdbased_test,
|
||||||
|
#endif
|
||||||
|
#ifdef OPENSSL_EXTRA
|
||||||
|
"openssl", openssl_test,
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_ECC
|
||||||
|
"ecc", ecc_test,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* NO_CRYPT_TEST */
|
||||||
|
|
||||||
|
"", NULL
|
||||||
|
} ;
|
||||||
|
|
||||||
|
enum jobtype { FORGROUND, BACKGROUND } ;
|
||||||
|
|
||||||
|
#define IF_DELIMITER(ch) ((ch) == ' ' || (ch) == '\n')
|
||||||
|
|
||||||
|
static int BackGround = 0 ; /* 1: background job is running */
|
||||||
|
|
||||||
|
/******* Get Command Line *****************************/
|
||||||
|
static int getline(char * line, int sz, func_args *args, int*bf_flg)
|
||||||
|
{
|
||||||
|
char * ret ;
|
||||||
|
int i ;
|
||||||
|
|
||||||
|
#define MAXARGS 10
|
||||||
|
#define MAXARGLEN 30
|
||||||
|
static char *argv[MAXARGS] ;
|
||||||
|
args->argv = argv ;
|
||||||
|
|
||||||
|
putchar('>') ;
|
||||||
|
fflush(stdout) ;
|
||||||
|
ret = fgets(line, sz, stdin) ;
|
||||||
|
|
||||||
|
#define SHELL_ERROR_FGETS -102
|
||||||
|
if(ret != line) return(SHELL_ERROR_FGETS) ;
|
||||||
|
|
||||||
|
if(line[strlen(line)-2] == '&') {
|
||||||
|
(*bf_flg) = BACKGROUND ;
|
||||||
|
line[strlen(line)-2] = '\n' ;
|
||||||
|
} else {
|
||||||
|
(*bf_flg) = FORGROUND ;
|
||||||
|
}
|
||||||
|
args->argc = 0 ;
|
||||||
|
for(i=0; i<sz; i++) {
|
||||||
|
args->argv[args->argc] = &(line[i]) ;
|
||||||
|
while(!IF_DELIMITER(line[i])) i++ ;
|
||||||
|
args->argc++ ;
|
||||||
|
if(line[i] == '\n') {
|
||||||
|
line[i] = '\0' ;
|
||||||
|
break ;
|
||||||
|
} else {
|
||||||
|
line[i] = '\0' ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return i ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/************* Embedded Shell Commands **********************************/
|
||||||
|
#define IP_SIZE 16
|
||||||
|
|
||||||
|
#ifdef CYASSL_KEIL_NET
|
||||||
|
static void ipaddr_comm(void *args)
|
||||||
|
{
|
||||||
|
if(((func_args *)args)->argc == 1) {
|
||||||
|
printf("IP addr: %s, port %d\n", yasslIP, yasslPort) ;
|
||||||
|
} else {
|
||||||
|
if(BackGround != 0) {
|
||||||
|
printf("Cannot change IP addr while background server is running\n") ;
|
||||||
|
} else if(((func_args *)args)->argc == 3 &&
|
||||||
|
((func_args *)args)->argv[1][0] == '-'&&
|
||||||
|
((func_args *)args)->argv[1][1] == 'a' ) {
|
||||||
|
/* strcpy(yasslIP, ((func_args *)args)->argv[2]) ; */
|
||||||
|
} else if(((func_args *)args)->argc == 3 &&
|
||||||
|
((func_args *)args)->argv[1][0] == '-' &&
|
||||||
|
((func_args *)args)->argv[1][1] == 'p' ) {
|
||||||
|
/* yasslPort = atoi(((func_args *)args)->argv[2]) ; */
|
||||||
|
} else printf("Invalid argument\n") ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(HAVE_KEIL_RTX)
|
||||||
|
static int stack_ck = 0 ;
|
||||||
|
|
||||||
|
void stack_comm(void *args)
|
||||||
|
{
|
||||||
|
if(stack_ck) {
|
||||||
|
printf("Stack Check: Off\n") ;
|
||||||
|
stack_ck = 0 ;
|
||||||
|
} else {
|
||||||
|
printf("Stack Check: On\n") ;
|
||||||
|
stack_ck = 1 ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#define FILL_PATTERN 0xa596695a
|
||||||
|
void stack_fill(char * stack, int size)
|
||||||
|
{
|
||||||
|
int i ;
|
||||||
|
|
||||||
|
if(stack_ck == 0)return ;
|
||||||
|
for(i=1; i<size/4-10; i++)
|
||||||
|
((int *)stack)[i] = FILL_PATTERN ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void stack_check(char * stack, int size)
|
||||||
|
{
|
||||||
|
int i ;
|
||||||
|
|
||||||
|
if(stack_ck == 0)return ;
|
||||||
|
if(stack_ck == 1) {
|
||||||
|
stack_ck ++ ; return ;
|
||||||
|
}
|
||||||
|
for(i=1; i<size/4 ; i++) {
|
||||||
|
if(((int *)stack)[i] != FILL_PATTERN) break ;
|
||||||
|
}
|
||||||
|
if(i < size/4) {
|
||||||
|
printf("Stack is used %d bytes out of %d\n", size - i*4, size) ;
|
||||||
|
} else {
|
||||||
|
printf("Stack overflow. Stack size: %d\n", size) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* HAVE_KEIL_RTX */
|
||||||
|
|
||||||
|
static int for_iteration = 1 ;
|
||||||
|
|
||||||
|
static void for_command(void *args)
|
||||||
|
{
|
||||||
|
if( args == NULL || ((func_args *)args)->argc == 1) {
|
||||||
|
printf("For %d times\n", for_iteration) ;
|
||||||
|
} else if( args == NULL || ((func_args *)args)->argc == 2) {
|
||||||
|
for_iteration = atoi(((func_args *)args)->argv[1]) ;
|
||||||
|
} else printf("Invalid argument\n") ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(DEBUG_CYASSL)
|
||||||
|
|
||||||
|
static int CyasslDebug = 1 ;
|
||||||
|
|
||||||
|
static void dbg_comm(void *args)
|
||||||
|
{
|
||||||
|
if(CyasslDebug == 1) {
|
||||||
|
CyasslDebug = 0 ;
|
||||||
|
printf("Turning OFF Debug message\n") ;
|
||||||
|
CyaSSL_Debugging_OFF() ;
|
||||||
|
} else {
|
||||||
|
CyasslDebug = 1 ;
|
||||||
|
printf("Turning ON Debug message\n") ;
|
||||||
|
CyaSSL_Debugging_ON() ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static void help_comm(void *args)
|
||||||
|
{
|
||||||
|
static char *commands[] = {
|
||||||
|
"test",
|
||||||
|
"benchmark",
|
||||||
|
"echoserver& : simple echo server in background mode",
|
||||||
|
"echoclient : simple echo client followed by any input string, or \"quit\", \"break\"",
|
||||||
|
"server& : simple server in background mode",
|
||||||
|
"client : simple client",
|
||||||
|
"client -g -v [0123] -h xxx.xxx.xxx.xxx -p 443 : usage example",
|
||||||
|
"server/client -h : help for server/client command",
|
||||||
|
"help",
|
||||||
|
""
|
||||||
|
} ;
|
||||||
|
|
||||||
|
int i ;
|
||||||
|
printf("Commands:\n") ;
|
||||||
|
for(i=0; commands[i][0] ; i++)
|
||||||
|
printf(" %s\n", commands[i]) ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define BG_JOB_STACK_SIZE 8000
|
||||||
|
#if (!defined(NO_SIMPLE_SERVER) && !defined(NO_ECHOSERVER)) && \
|
||||||
|
defined(HAVE_KEIL_RTX)
|
||||||
|
#if !defined(CYASSL_CMSIS_RTOS)
|
||||||
|
static char bg_job_stack[BG_JOB_STACK_SIZE] ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define COMMAND_STACK_SIZE 10000
|
||||||
|
#if defined(HAVE_KEIL_RTX) && !defined(CYASSL_CMSIS_RTOS)
|
||||||
|
static char command_stack[COMMAND_STACK_SIZE] ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_KEIL_RTX
|
||||||
|
static CyaSSL_Mutex command_mutex ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void exit_command(void) {
|
||||||
|
printf("Command Aborted\n") ;
|
||||||
|
#ifdef CYASSL_CMSIS_RTOS
|
||||||
|
osThreadTerminate(osThreadGetId()) ;
|
||||||
|
#else
|
||||||
|
os_tsk_delete_self() ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*********** Invoke Forground Command *********************/
|
||||||
|
static void command_invoke(void const *args)
|
||||||
|
{
|
||||||
|
void (*func)(void const * ) ;
|
||||||
|
int i,iteration ;
|
||||||
|
|
||||||
|
func = (void(*)(void const *))((func_args *)args)->argv[0] ;
|
||||||
|
#ifdef HAVE_KEIL_RTX
|
||||||
|
LockMutex((CyaSSL_Mutex *)&command_mutex) ;
|
||||||
|
#endif
|
||||||
|
iteration = for_iteration ;
|
||||||
|
for(i=0; i< iteration; i++) {
|
||||||
|
if(iteration > 1) printf("--- Start for %d ---->\n", i) ;
|
||||||
|
#if defined(HAVE_KEIL_RTX) && !defined(CYASSL_CMSIS_RTOS)
|
||||||
|
stack_fill(command_stack, COMMAND_STACK_SIZE) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
func(args) ; /* invoke command */
|
||||||
|
|
||||||
|
#if defined(HAVE_KEIL_RTX)&& !defined(CYASSL_CMSIS_RTOS)
|
||||||
|
stack_check(command_stack, COMMAND_STACK_SIZE) ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
if(iteration > 1)
|
||||||
|
for_iteration = 1 ;
|
||||||
|
osDelay(20000) ;
|
||||||
|
#ifdef HAVE_KEIL_RTX
|
||||||
|
UnLockMutex((CyaSSL_Mutex *)&command_mutex) ;
|
||||||
|
#ifdef CYASSL_CMSIS_RTOS
|
||||||
|
osThreadTerminate(osThreadGetId()) ;
|
||||||
|
#else
|
||||||
|
os_tsk_delete_self() ;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(HAVE_KEIL_RTX)
|
||||||
|
/******* Invoke Background Job *******************************/
|
||||||
|
static void bg_job_invoke(void const *args)
|
||||||
|
{
|
||||||
|
void (*func)(void const * ) ;
|
||||||
|
BackGround = 1 ;
|
||||||
|
#if defined(HAVE_KEIL_RTX)&& !defined(CYASSL_CMSIS_RTOS)
|
||||||
|
stack_fill(bg_job_stack, BG_JOB_STACK_SIZE) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
func = (void(*)(void const *))((func_args *)args)->argv[0] ;
|
||||||
|
func(args) ; /* invoke command */
|
||||||
|
#if defined(HAVE_KEIL_RTX) && !defined(CYASSL_CMSIS_RTOS)
|
||||||
|
stack_check(bg_job_stack, BG_JOB_STACK_SIZE) ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
osDelay(20000) ;
|
||||||
|
BackGround = 0 ;
|
||||||
|
|
||||||
|
#ifdef CYASSL_CMSIS_RTOS
|
||||||
|
osThreadTerminate(osThreadGetId()) ;
|
||||||
|
#else
|
||||||
|
os_tsk_delete_self() ; ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LINESIZE 100
|
||||||
|
static char line[LINESIZE] ;
|
||||||
|
|
||||||
|
#if defined(CYASSL_CMSIS_RTOS)
|
||||||
|
osThreadDef (command_invoke, osPriorityAboveNormal , 1, COMMAND_STACK_SIZE) ;
|
||||||
|
osThreadDef (bg_job_invoke, osPriorityNormal , 1 , BG_JOB_STACK_SIZE) ;
|
||||||
|
#endif
|
||||||
|
/********* SHEULL MAIN LOOP ***********************************/
|
||||||
|
void shell_main(void *arg) {
|
||||||
|
int i ;
|
||||||
|
func_args args ;
|
||||||
|
int bf_flg ;
|
||||||
|
|
||||||
|
i = BackGround ;
|
||||||
|
/* Dummy for avoiding warning: BackGround is defined but not used. */
|
||||||
|
|
||||||
|
#if defined(HAVE_KEIL_RTX)
|
||||||
|
InitMutex(&command_mutex) ;
|
||||||
|
#endif
|
||||||
|
help_comm(NULL) ;
|
||||||
|
|
||||||
|
printf("Starting Shell\n") ;
|
||||||
|
while(1) {
|
||||||
|
if(getline(line, LINESIZE, &args, &bf_flg) > 0) {
|
||||||
|
for(i=0; commandTable[i].func != NULL; i++) {
|
||||||
|
if(strcmp(commandTable[i].command, args.argv[0]) == 0) {
|
||||||
|
args.argv[0] = (char *) commandTable[i].func ;
|
||||||
|
if(bf_flg == FORGROUND) {
|
||||||
|
#if defined(HAVE_KEIL_RTX) && !defined(CYASSL_CMSIS_RTOS)
|
||||||
|
UnLockMutex((CyaSSL_Mutex *)&command_mutex) ;
|
||||||
|
os_tsk_create_user_ex( (void(*)(void *))&command_invoke, 7,
|
||||||
|
command_stack, COMMAND_STACK_SIZE, &args) ;
|
||||||
|
#else
|
||||||
|
#if defined(CYASSL_CMSIS_RTOS)
|
||||||
|
UnLockMutex((CyaSSL_Mutex *)&command_mutex) ;
|
||||||
|
osThreadCreate (osThread (command_invoke) , &args);
|
||||||
|
#else
|
||||||
|
command_invoke(&args) ;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_KEIL_RTX
|
||||||
|
LockMutex((CyaSSL_Mutex *)&command_mutex) ;
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
|
#if (!defined(NO_SIMPLE_SERVER) && \
|
||||||
|
!defined(NO_ECHOSERVER)) && \
|
||||||
|
defined(HAVE_KEIL_RTX)
|
||||||
|
if(BackGround != 0) {
|
||||||
|
printf("Multiple background servers not supported.\n") ;
|
||||||
|
} else {
|
||||||
|
printf("\"%s\" is running with the background mode.\n",
|
||||||
|
commandTable[i].command) ;
|
||||||
|
#if defined(HAVE_KEIL_RTX) && !defined(CYASSL_CMSIS_RTOS)
|
||||||
|
os_tsk_create_user_ex( (void(*)(void *))&bg_job_invoke,
|
||||||
|
6, bg_job_stack, BG_JOB_STACK_SIZE, &args) ;
|
||||||
|
#else
|
||||||
|
osThreadCreate (osThread (bg_job_invoke), &args);
|
||||||
|
osDelay (500) ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
printf("Invalid Command: no background job\n") ;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
break ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(commandTable[i].func == NULL)
|
||||||
|
printf("Command not found\n") ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
4758
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Projects/CyaSSL-Full/test.c
Normal file
4758
FreeRTOS-Plus/Source/CyaSSL/IDE/MDK5-ARM/Projects/CyaSSL-Full/test.c
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,41 @@
|
||||||
|
/* time-STM32F2.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#define DWT ((DWT_Type *) (0xE0001000UL) )
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */
|
||||||
|
uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */
|
||||||
|
} DWT_Type;
|
||||||
|
|
||||||
|
extern uint32_t SystemCoreClock ;
|
||||||
|
|
||||||
|
double current_time(int reset)
|
||||||
|
{
|
||||||
|
if(reset) DWT->CYCCNT = 0 ;
|
||||||
|
return ((double)DWT->CYCCNT/SystemCoreClock) ;
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
/* time-dummy.c.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "time.h"
|
||||||
|
|
||||||
|
struct tm *Cyassl_MDK_gmtime(const time_t *c)
|
||||||
|
{
|
||||||
|
static struct tm date ;
|
||||||
|
return(&date) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
time_t time(time_t * t) { return 0 ; }
|
|
@ -0,0 +1,22 @@
|
||||||
|
This program is echo client with CyaSSL/wolfCrypt library.
|
||||||
|
|
||||||
|
In order to run this program,
|
||||||
|
Copy {PACK}\wolfSSL\CyaSSL\{version}\cyassl\certs folder and files to the SD memory.
|
||||||
|
Set config-EchoClient.h configuration file for the Callee IP or Port number.
|
||||||
|
|
||||||
|
For further configuration, refer config-Crypt.h and config-CyaSSL.h.
|
||||||
|
|
||||||
|
When testing this client, it is recommended to test against one of the standard
|
||||||
|
CyaSSL example applications running on a desktop machine. The standard CyaSSL
|
||||||
|
example applications are located in the CyaSSL root directory under the
|
||||||
|
<cyassl_root>/examples directory.
|
||||||
|
|
||||||
|
For the hardware crypt on config-Crypt.h, download
|
||||||
|
STSW-STM32062: STM32F2xx standard peripherals library at
|
||||||
|
http://www.st.com/. Copy Libraries\STM32F2xx_StdPeriph_Driver\{inc,src} to
|
||||||
|
{PACK}\cyassl\IDE\MDK5-ARM\STM32F2xx_StdPeriph_Lib
|
||||||
|
|
||||||
|
|
||||||
|
Support
|
||||||
|
-------
|
||||||
|
Please send questions or comments to support@wolfssl.com
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,627 @@
|
||||||
|
/* settings.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Place OS specific preprocessor flags, defines, includes here, will be
|
||||||
|
included into every file because types.h includes it */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef CTAO_CRYPT_SETTINGS_H
|
||||||
|
#define CTAO_CRYPT_SETTINGS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Uncomment next line if using IPHONE */
|
||||||
|
/* #define IPHONE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using ThreadX */
|
||||||
|
/* #define THREADX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Micrium ucOS */
|
||||||
|
/* #define MICRIUM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Mbed */
|
||||||
|
/* #define MBED */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip PIC32 ethernet starter kit */
|
||||||
|
/* #define MICROCHIP_PIC32 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 5 */
|
||||||
|
/* #define MICROCHIP_TCPIP_V5 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 6 or later */
|
||||||
|
/* #define MICROCHIP_TCPIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS */
|
||||||
|
/* #define FREERTOS */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS Windows Simulator */
|
||||||
|
/* #define FREERTOS_WINSIM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using RTIP */
|
||||||
|
/* #define EBSNET */
|
||||||
|
|
||||||
|
/* Uncomment next line if using lwip */
|
||||||
|
/* #define CYASSL_LWIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for a game console */
|
||||||
|
/* #define CYASSL_GAME_BUILD */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for LSR */
|
||||||
|
/* #define CYASSL_LSR */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for Freescale MQX/RTCS/MFS */
|
||||||
|
/* #define FREESCALE_MQX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using STM32F2 */
|
||||||
|
/* #define CYASSL_STM32F2 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Comverge settings */
|
||||||
|
/* #define COMVERGE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using QL SEP settings */
|
||||||
|
/* #define CYASSL_QL */
|
||||||
|
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
|
||||||
|
#ifdef IPHONE
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef COMVERGE
|
||||||
|
#define THREADX
|
||||||
|
#define HAVE_NETX
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef THREADX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_NETX
|
||||||
|
#include "nx_api.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_PIC32
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP_V5
|
||||||
|
/* include timer functions */
|
||||||
|
#include "TCPIP Stack/TCPIP.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP
|
||||||
|
/* include timer, NTP functions */
|
||||||
|
#include "system/system_services.h"
|
||||||
|
#ifdef MICROCHIP_MPLAB_HARMONY
|
||||||
|
#include "tcpip/tcpip.h"
|
||||||
|
#else
|
||||||
|
#include "tcpip/sntp.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MBED
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#endif /* MBED */
|
||||||
|
|
||||||
|
#ifdef CYASSL_TYTO
|
||||||
|
#include "rand.h"
|
||||||
|
#define FREERTOS
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define HAVE_ECC
|
||||||
|
#define HAVE_ECC_ENCRYPT
|
||||||
|
#define ECC_SHAMIR
|
||||||
|
#define HAVE_HKDF
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#define FP_MAX_BITS 512
|
||||||
|
#define NO_OLD_TLS
|
||||||
|
#define NO_MD4
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_PWDBASED
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREERTOS_WINSIM
|
||||||
|
#define FREERTOS
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Micrium will use Visual Studio for compilation but not the Win32 API */
|
||||||
|
#if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) \
|
||||||
|
&& !defined(EBSNET)
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(CYASSL_LEANPSK) && !defined(XMALLOC_USER)
|
||||||
|
#include <stdlib.h>
|
||||||
|
#define XMALLOC(s, h, type) malloc((s))
|
||||||
|
#define XFREE(p, h, type) free((p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(XMALLOC_USER) && defined(SSN_BUILDING_LIBYASSL)
|
||||||
|
#undef XMALLOC
|
||||||
|
#define XMALLOC yaXMALLOC
|
||||||
|
#undef XFREE
|
||||||
|
#define XFREE yaXFREE
|
||||||
|
#undef XREALLOC
|
||||||
|
#define XREALLOC yaXREALLOC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FREERTOS
|
||||||
|
#ifndef NO_WRITEV
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
#ifndef NO_SHA512
|
||||||
|
#define NO_SHA512
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DH
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DSA
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
#ifndef NO_HC128
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "semphr.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef EBSNET
|
||||||
|
#include "rtip.h"
|
||||||
|
|
||||||
|
/* #define DEBUG_CYASSL */
|
||||||
|
#define NO_CYASSL_DIR /* tbd */
|
||||||
|
|
||||||
|
#if (POLLOS)
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (RTPLATFORM)
|
||||||
|
#if (!RTP_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if (!KS_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (WINMSP3)
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#else
|
||||||
|
#sslpro: settings.h - please implement SIZEOF_LONG and SIZEOF_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, type) ((void *)rtp_malloc((s), SSL_PRO_MALLOC))
|
||||||
|
#define XFREE(p, h, type) (rtp_free(p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
|
||||||
|
#endif /* EBSNET */
|
||||||
|
|
||||||
|
#ifdef CYASSL_GAME_BUILD
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#if defined(__PPU) || defined(__XENON)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LSR
|
||||||
|
#define HAVE_WEBSERVER
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define CYASSL_LOW_MEMORY
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#define LSR_FS
|
||||||
|
#include "inc/hw_types.h"
|
||||||
|
#include "fs.h"
|
||||||
|
#endif
|
||||||
|
#define CYASSL_LWIP
|
||||||
|
#include <errno.h> /* for tcp errno */
|
||||||
|
#define CYASSL_SAFERTOS
|
||||||
|
#if defined(__IAR_SYSTEMS_ICC__)
|
||||||
|
/* enum uses enum */
|
||||||
|
#pragma diag_suppress=Pa089
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_SAFERTOS
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "SafeRTOS/semphr.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "SafeRTOS/heap.h"
|
||||||
|
#define XMALLOC(s, h, type) pvPortMalloc((s))
|
||||||
|
#define XFREE(p, h, type) vPortFree((p))
|
||||||
|
#define XREALLOC(p, n, h, t) pvPortRealloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LOW_MEMORY
|
||||||
|
#undef RSA_LOW_MEM
|
||||||
|
#define RSA_LOW_MEM
|
||||||
|
#undef CYASSL_SMALL_STACK
|
||||||
|
#define CYASSL_SMALL_STACK
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREESCALE_MQX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#define FREESCALE_K70_RNGA
|
||||||
|
/* #define FREESCALE_K53_RNGB */
|
||||||
|
#include "mqx.h"
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#include "mfs.h"
|
||||||
|
#include "fio.h"
|
||||||
|
#endif
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "mutex.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, t) (void *)_mem_alloc_system((s))
|
||||||
|
#define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));}
|
||||||
|
/* Note: MQX has no realloc, using fastmath above */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_STM32F2
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define STM32F2_RNG
|
||||||
|
#define STM32F2_CRYPTO
|
||||||
|
#define KEIL_INTRINSICS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICRIUM
|
||||||
|
|
||||||
|
#include "stdlib.h"
|
||||||
|
#include "net_cfg.h"
|
||||||
|
#include "ssl_cfg.h"
|
||||||
|
#include "net_secure_os.h"
|
||||||
|
|
||||||
|
#define CYASSL_TYPES
|
||||||
|
|
||||||
|
typedef CPU_INT08U byte;
|
||||||
|
typedef CPU_INT16U word16;
|
||||||
|
typedef CPU_INT32U word32;
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_WORD_SIZE == CPU_WORD_SIZE_32)
|
||||||
|
#define SIZEOF_LONG 4
|
||||||
|
#undef SIZEOF_LONG_LONG
|
||||||
|
#else
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STRING_USER
|
||||||
|
|
||||||
|
#define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr)))
|
||||||
|
#define XSTRNCPY(pstr_dest, pstr_src, len_max) \
|
||||||
|
((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \
|
||||||
|
(CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRNCMP(pstr_1, pstr_2, len_max) \
|
||||||
|
((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \
|
||||||
|
(CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRSTR(pstr, pstr_srch) \
|
||||||
|
((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \
|
||||||
|
(CPU_CHAR *)(pstr_srch)))
|
||||||
|
#define XMEMSET(pmem, data_val, size) \
|
||||||
|
((void)Mem_Set((void *)(pmem), (CPU_INT08U) (data_val), \
|
||||||
|
(CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \
|
||||||
|
(void *)(psrc), (CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCMP(pmem_1, pmem_2, size) \
|
||||||
|
(((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), (void *)(pmem_2), \
|
||||||
|
(CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES)
|
||||||
|
#define XMEMMOVE XMEMCPY
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
|
||||||
|
#define MICRIUM_MALLOC
|
||||||
|
#define XMALLOC(s, h, type) ((void *)NetSecure_BlkGet((CPU_INT08U)(type), \
|
||||||
|
(CPU_SIZE_T)(s), (void *)0))
|
||||||
|
#define XFREE(p, h, type) (NetSecure_BlkFree((CPU_INT08U)(type), \
|
||||||
|
(p), (void *)0))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_FS_EN == DEF_ENABLED)
|
||||||
|
#undef NO_FILESYSTEM
|
||||||
|
#else
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TRACE_LEVEL == CYASSL_TRACE_LEVEL_DBG)
|
||||||
|
#define DEBUG_CYASSL
|
||||||
|
#else
|
||||||
|
#undef DEBUG_CYASSL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_OPENSSL_EN == DEF_ENABLED)
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#else
|
||||||
|
#undef OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MULTI_THREAD_EN == DEF_ENABLED)
|
||||||
|
#undef SINGLE_THREADED
|
||||||
|
#else
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DH_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DH
|
||||||
|
#else
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DSA_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DSA
|
||||||
|
#else
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_PSK_EN == DEF_ENABLED)
|
||||||
|
#undef NO_PSK
|
||||||
|
#else
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_3DES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DES
|
||||||
|
#else
|
||||||
|
#define NO_DES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_AES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_AES
|
||||||
|
#else
|
||||||
|
#define NO_AES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RC4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RC4
|
||||||
|
#else
|
||||||
|
#define NO_RC4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RABBIT_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RABBIT
|
||||||
|
#else
|
||||||
|
#define NO_RABBIT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_HC128_EN == DEF_ENABLED)
|
||||||
|
#undef NO_HC128
|
||||||
|
#else
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#else
|
||||||
|
#undef BIG_ENDIAN_ORDER
|
||||||
|
#define LITTLE_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MD4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_MD4
|
||||||
|
#else
|
||||||
|
#define NO_MD4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_WRITEV_EN == DEF_ENABLED)
|
||||||
|
#undef NO_WRITEV
|
||||||
|
#else
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_RNG_SEED_EN == DEF_ENABLED)
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#else
|
||||||
|
#undef NO_DEV_RANDOM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_IO_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#else
|
||||||
|
#undef CYASSL_USER_IO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DYNAMIC_BUFFERS_EN == DEF_ENABLED)
|
||||||
|
#undef LARGE_STATIC_BUFFERS
|
||||||
|
#undef STATIC_CHUNKS_ONLY
|
||||||
|
#else
|
||||||
|
#define LARGE_STATIC_BUFFERS
|
||||||
|
#define STATIC_CHUNKS_ONLY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DER_LOAD_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DTLS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DTLS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DTLS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_CALLBACKS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_CALLBACKS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_CALLBACKS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_FAST_MATH_EN == DEF_ENABLED)
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#else
|
||||||
|
#undef USE_FAST_MATH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TFM_TIMING_RESISTANT_EN == DEF_ENABLED)
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#else
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* MICRIUM */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_QL
|
||||||
|
#ifndef CYASSL_SEP
|
||||||
|
#define CYASSL_SEP
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_EXTRA
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_CERTS
|
||||||
|
#define SESSION_CERTS
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_AESCCM
|
||||||
|
#define HAVE_AESCCM
|
||||||
|
#endif
|
||||||
|
#ifndef ATOMIC_USER
|
||||||
|
#define ATOMIC_USER
|
||||||
|
#endif
|
||||||
|
#ifndef CYASSL_DER_LOAD
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
#ifndef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_ECC
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_INDEX
|
||||||
|
#define SESSION_INDEX
|
||||||
|
#endif
|
||||||
|
#endif /* CYASSL_QL */
|
||||||
|
|
||||||
|
|
||||||
|
#if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \
|
||||||
|
!defined(CYASSL_LEANPSK) && !defined(NO_CYASSL_MEMORY)
|
||||||
|
#define USE_CYASSL_MEMORY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS)
|
||||||
|
#undef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* stream ciphers except arc4 need 32bit alignment, intel ok without */
|
||||||
|
#ifndef XSTREAM_ALIGNMENT
|
||||||
|
#if defined(__x86_64__) || defined(__ia64__) || defined(__i386__)
|
||||||
|
#define NO_XSTREAM_ALIGNMENT
|
||||||
|
#else
|
||||||
|
#define XSTREAM_ALIGNMENT
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* if using hardware crypto and have alignment requirements, specify the
|
||||||
|
requirement here. The record header of SSL/TLS will prvent easy alignment.
|
||||||
|
This hint tries to help as much as possible. */
|
||||||
|
#ifndef CYASSL_GENERAL_ALIGNMENT
|
||||||
|
#ifdef CYASSL_AESNI
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 16
|
||||||
|
#elif defined(XSTREAM_ALIGNMENT)
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 4
|
||||||
|
#else
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CRL
|
||||||
|
/* not widely supported yet */
|
||||||
|
#undef NO_SKID
|
||||||
|
#define NO_SKID
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Place any other flags or defines here */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* CTAO_CRYPT_SETTINGS_H */
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
/* config-RTX-TCP-FS.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// <<< Use Configuration Wizard in Context Menu >>>
|
||||||
|
// <h> Build Target: Simple Client
|
||||||
|
// <s.15>Callee IP Address
|
||||||
|
// <i> Default: "192.168.1.100"
|
||||||
|
#define CYASSL_CALLEE_IP "192.168.11.3"
|
||||||
|
// <o>Callee Port Number
|
||||||
|
// <i> Default: "11111"
|
||||||
|
#define CYASSL_CALLEE_PORT 443
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
// <<< end of configuration section >>>
|
|
@ -0,0 +1,282 @@
|
||||||
|
/* echoclient.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/settings.h>
|
||||||
|
|
||||||
|
#include <cyassl/openssl/ssl.h>
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_ARM)
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK5)
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#include "rl_fs.h"
|
||||||
|
#include "rl_net.h"
|
||||||
|
#else
|
||||||
|
#include "rtl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/test.h>
|
||||||
|
|
||||||
|
#include "examples/echoclient/echoclient.h"
|
||||||
|
|
||||||
|
void echoclient_test(void* args)
|
||||||
|
{
|
||||||
|
SOCKET_T sockfd = 0;
|
||||||
|
|
||||||
|
FILE* fin = stdin ;
|
||||||
|
FILE* fout = stdout;
|
||||||
|
|
||||||
|
int inCreated = 0;
|
||||||
|
int outCreated = 0;
|
||||||
|
|
||||||
|
char msg[1024];
|
||||||
|
char reply[1024+1];
|
||||||
|
|
||||||
|
SSL_METHOD* method = 0;
|
||||||
|
SSL_CTX* ctx = 0;
|
||||||
|
SSL* ssl = 0;
|
||||||
|
|
||||||
|
int doDTLS = 0;
|
||||||
|
int doPSK = 0;
|
||||||
|
int sendSz;
|
||||||
|
int argc = 0;
|
||||||
|
char** argv = 0;
|
||||||
|
word16 port = yasslPort;
|
||||||
|
|
||||||
|
((func_args*)args)->return_code = -1; /* error state */
|
||||||
|
|
||||||
|
#ifndef CYASSL_MDK_SHELL
|
||||||
|
argc = ((func_args*)args)->argc;
|
||||||
|
argv = ((func_args*)args)->argv;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (argc >= 2) {
|
||||||
|
fin = fopen(argv[1], "r");
|
||||||
|
inCreated = 1;
|
||||||
|
}
|
||||||
|
if (argc >= 3) {
|
||||||
|
fout = fopen(argv[2], "w");
|
||||||
|
outCreated = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!fin) err_sys("can't open input file");
|
||||||
|
if (!fout) err_sys("can't open output file");
|
||||||
|
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
doDTLS = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LEANPSK
|
||||||
|
doPSK = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(NO_RSA) && !defined(HAVE_ECC)
|
||||||
|
doPSK = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(NO_MAIN_DRIVER) && !defined(USE_WINDOWS_API) && !defined(CYASSL_MDK_SHELL)
|
||||||
|
port = ((func_args*)args)->signal->port;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CYASSL_DTLS)
|
||||||
|
method = DTLSv1_client_method();
|
||||||
|
#elif !defined(NO_TLS)
|
||||||
|
method = CyaSSLv23_client_method();
|
||||||
|
#else
|
||||||
|
method = SSLv3_client_method();
|
||||||
|
#endif
|
||||||
|
ctx = SSL_CTX_new(method);
|
||||||
|
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#ifndef NO_RSA
|
||||||
|
if (SSL_CTX_load_verify_locations(ctx, caCert, 0) != SSL_SUCCESS)
|
||||||
|
err_sys("can't load ca file, Please run from CyaSSL home dir");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_ECC
|
||||||
|
if (SSL_CTX_load_verify_locations(ctx, eccCert, 0) != SSL_SUCCESS)
|
||||||
|
err_sys("can't load ca file, Please run from CyaSSL home dir");
|
||||||
|
#endif
|
||||||
|
#elif !defined(NO_CERTS)
|
||||||
|
if (!doPSK)
|
||||||
|
load_buffer(ctx, caCert, CYASSL_CA);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CYASSL_SNIFFER) && !defined(HAVE_NTRU) && !defined(HAVE_ECC)
|
||||||
|
/* don't use EDH, can't sniff tmp keys */
|
||||||
|
SSL_CTX_set_cipher_list(ctx, "AES256-SHA");
|
||||||
|
#endif
|
||||||
|
if (doPSK) {
|
||||||
|
#ifndef NO_PSK
|
||||||
|
const char *defaultCipherList;
|
||||||
|
|
||||||
|
CyaSSL_CTX_set_psk_client_callback(ctx, my_psk_client_cb);
|
||||||
|
#ifdef HAVE_NULL_CIPHER
|
||||||
|
defaultCipherList = "PSK-NULL-SHA256";
|
||||||
|
#else
|
||||||
|
defaultCipherList = "PSK-AES128-CBC-SHA256";
|
||||||
|
#endif
|
||||||
|
if (CyaSSL_CTX_set_cipher_list(ctx,defaultCipherList) !=SSL_SUCCESS)
|
||||||
|
err_sys("client can't set cipher list 2");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
|
SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_ARM)
|
||||||
|
CyaSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ssl = SSL_new(ctx);
|
||||||
|
|
||||||
|
|
||||||
|
if (doDTLS) {
|
||||||
|
SOCKADDR_IN_T addr;
|
||||||
|
build_addr(&addr, yasslIP, port, 1);
|
||||||
|
CyaSSL_dtls_set_peer(ssl, &addr, sizeof(addr));
|
||||||
|
tcp_socket(&sockfd, 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tcp_connect(&sockfd, yasslIP, port, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
SSL_set_fd(ssl, sockfd);
|
||||||
|
#if defined(USE_WINDOWS_API) && defined(CYASSL_DTLS) && defined(NO_MAIN_DRIVER)
|
||||||
|
/* let echoserver bind first, TODO: add Windows signal like pthreads does */
|
||||||
|
Sleep(100);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (SSL_connect(ssl) != SSL_SUCCESS) err_sys("SSL_connect failed");
|
||||||
|
|
||||||
|
while (fgets(msg, sizeof(msg), fin) != 0) {
|
||||||
|
|
||||||
|
sendSz = (int)strlen(msg);
|
||||||
|
|
||||||
|
if (SSL_write(ssl, msg, sendSz) != sendSz)
|
||||||
|
err_sys("SSL_write failed");
|
||||||
|
|
||||||
|
if (strncmp(msg, "quit", 4) == 0) {
|
||||||
|
fputs("sending server shutdown command: quit!\n", fout);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strncmp(msg, "break", 5) == 0) {
|
||||||
|
fputs("sending server session close: break!\n", fout);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef CYASSL_MDK_SHELL
|
||||||
|
while (sendSz) {
|
||||||
|
int got;
|
||||||
|
if ( (got = SSL_read(ssl, reply, sizeof(reply)-1)) > 0) {
|
||||||
|
reply[got] = 0;
|
||||||
|
fputs(reply, fout);
|
||||||
|
fflush(fout) ;
|
||||||
|
sendSz -= got;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
{
|
||||||
|
int got;
|
||||||
|
if ( (got = SSL_read(ssl, reply, sizeof(reply)-1)) > 0) {
|
||||||
|
reply[got] = 0;
|
||||||
|
fputs(reply, fout);
|
||||||
|
fflush(fout) ;
|
||||||
|
sendSz -= got;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
strncpy(msg, "break", 6);
|
||||||
|
sendSz = (int)strlen(msg);
|
||||||
|
/* try to tell server done */
|
||||||
|
SSL_write(ssl, msg, sendSz);
|
||||||
|
#else
|
||||||
|
SSL_shutdown(ssl);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
SSL_free(ssl);
|
||||||
|
SSL_CTX_free(ctx);
|
||||||
|
|
||||||
|
fflush(fout);
|
||||||
|
if (inCreated) fclose(fin);
|
||||||
|
if (outCreated) fclose(fout);
|
||||||
|
|
||||||
|
CloseSocket(sockfd);
|
||||||
|
((func_args*)args)->return_code = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* so overall tests can pull in test function */
|
||||||
|
#ifndef NO_MAIN_DRIVER
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
func_args args;
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
int ret = OpenNitroxDevice(CAVIUM_DIRECT, CAVIUM_DEV_ID);
|
||||||
|
if (ret != 0)
|
||||||
|
err_sys("Cavium OpenNitroxDevice failed");
|
||||||
|
#endif /* HAVE_CAVIUM */
|
||||||
|
|
||||||
|
StartTCP();
|
||||||
|
|
||||||
|
args.argc = argc;
|
||||||
|
args.argv = argv;
|
||||||
|
|
||||||
|
CyaSSL_Init();
|
||||||
|
#if defined(DEBUG_CYASSL) && !defined(CYASSL_MDK_SHELL)
|
||||||
|
CyaSSL_Debugging_ON();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (CurrentDir("echoclient"))
|
||||||
|
ChangeDirBack(2);
|
||||||
|
else if (CurrentDir("Debug") || CurrentDir("Release"))
|
||||||
|
ChangeDirBack(3);
|
||||||
|
echoclient_test(&args);
|
||||||
|
|
||||||
|
CyaSSL_Cleanup();
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
CspShutdown(CAVIUM_DEV_ID);
|
||||||
|
#endif
|
||||||
|
return args.return_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* NO_MAIN_DRIVER */
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,100 @@
|
||||||
|
/* main.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
#include <cyassl/ctaocrypt/logging.h>
|
||||||
|
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#include "rl_fs.h"
|
||||||
|
#include "rl_net.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
#include <cyassl/ssl.h>
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* Initialize a Flash Memory Card
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
static void init_filesystem (void) {
|
||||||
|
int32_t retv;
|
||||||
|
|
||||||
|
retv = finit ("M0:");
|
||||||
|
if (retv == 0) {
|
||||||
|
retv = fmount ("M0:");
|
||||||
|
if (retv == 0) {
|
||||||
|
printf ("Drive M0 ready!\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf ("Drive M0 mount failed!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf ("Drive M0 initialization failed!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* TCP/IP tasks
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
void tcp_poll (void const *arg)
|
||||||
|
{
|
||||||
|
CYASSL_MSG("TCP polling started.\n") ;
|
||||||
|
while (1) {
|
||||||
|
net_main ();
|
||||||
|
osDelay(1) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef struct func_args {
|
||||||
|
int argc;
|
||||||
|
char** argv;
|
||||||
|
} func_args;
|
||||||
|
|
||||||
|
extern void echoclient_test(func_args * args) ;
|
||||||
|
extern void init_time(void) ;
|
||||||
|
|
||||||
|
osThreadDef (tcp_poll, osPriorityHigh , 1, 0) ;
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* mian entry
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
int myoptind = 0;
|
||||||
|
char* myoptarg = NULL;
|
||||||
|
|
||||||
|
#include "config-EchoClient.h"
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
void *args = NULL ;
|
||||||
|
init_filesystem ();
|
||||||
|
net_initialize() ;
|
||||||
|
osThreadCreate (osThread (tcp_poll), NULL);
|
||||||
|
osDelay(30000) ; /* wait for DHCP */
|
||||||
|
#if defined(DEBUG_CYASSL)
|
||||||
|
printf("Turning ON Debug message\n") ;
|
||||||
|
CyaSSL_Debugging_ON() ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
echoclient_test(args) ;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
/* time-dummy.c.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "time.h"
|
||||||
|
|
||||||
|
struct tm *Cyassl_MDK_gmtime(const time_t *c)
|
||||||
|
{
|
||||||
|
static struct tm date ;
|
||||||
|
return(&date) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
time_t time(time_t * t) { return 0 ; }
|
|
@ -0,0 +1,24 @@
|
||||||
|
This program is echo server with CyaSSL/wolfCrypt library.
|
||||||
|
|
||||||
|
In order to run this program,
|
||||||
|
Copy {PACK}\wolfSSL\CyaSSL\{version}\cyassl\certs folder and files to the SD memory.
|
||||||
|
Set the server IP address in Net_Config_ETH_0.h
|
||||||
|
The server default port is 11111, defined in test.h.
|
||||||
|
|
||||||
|
For further configuration, refer config-Crypt.h and config-CyaSSL.h.
|
||||||
|
|
||||||
|
When testing this server, it is recommended to test against one of the standard
|
||||||
|
CyaSSL example applications running on a desktop machine. The standard CyaSSL
|
||||||
|
example applications are located in the CyaSSL root directory under the
|
||||||
|
<cyassl_root>/examples directory.
|
||||||
|
|
||||||
|
For the hardware crypt on config-Crypt.h, download
|
||||||
|
STSW-STM32062: STM32F2xx standard peripherals library at
|
||||||
|
http://www.st.com/. Copy Libraries\STM32F2xx_StdPeriph_Driver\{inc,src} to
|
||||||
|
{PACK}\cyassl\IDE\MDK5-ARM\STM32F2xx_StdPeriph_Lib
|
||||||
|
|
||||||
|
|
||||||
|
Support
|
||||||
|
-------
|
||||||
|
Please send questions or comments to support@wolfssl.com
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,627 @@
|
||||||
|
/* settings.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Place OS specific preprocessor flags, defines, includes here, will be
|
||||||
|
included into every file because types.h includes it */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef CTAO_CRYPT_SETTINGS_H
|
||||||
|
#define CTAO_CRYPT_SETTINGS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Uncomment next line if using IPHONE */
|
||||||
|
/* #define IPHONE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using ThreadX */
|
||||||
|
/* #define THREADX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Micrium ucOS */
|
||||||
|
/* #define MICRIUM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Mbed */
|
||||||
|
/* #define MBED */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip PIC32 ethernet starter kit */
|
||||||
|
/* #define MICROCHIP_PIC32 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 5 */
|
||||||
|
/* #define MICROCHIP_TCPIP_V5 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 6 or later */
|
||||||
|
/* #define MICROCHIP_TCPIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS */
|
||||||
|
/* #define FREERTOS */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS Windows Simulator */
|
||||||
|
/* #define FREERTOS_WINSIM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using RTIP */
|
||||||
|
/* #define EBSNET */
|
||||||
|
|
||||||
|
/* Uncomment next line if using lwip */
|
||||||
|
/* #define CYASSL_LWIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for a game console */
|
||||||
|
/* #define CYASSL_GAME_BUILD */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for LSR */
|
||||||
|
/* #define CYASSL_LSR */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for Freescale MQX/RTCS/MFS */
|
||||||
|
/* #define FREESCALE_MQX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using STM32F2 */
|
||||||
|
/* #define CYASSL_STM32F2 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Comverge settings */
|
||||||
|
/* #define COMVERGE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using QL SEP settings */
|
||||||
|
/* #define CYASSL_QL */
|
||||||
|
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
|
||||||
|
#ifdef IPHONE
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef COMVERGE
|
||||||
|
#define THREADX
|
||||||
|
#define HAVE_NETX
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef THREADX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_NETX
|
||||||
|
#include "nx_api.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_PIC32
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP_V5
|
||||||
|
/* include timer functions */
|
||||||
|
#include "TCPIP Stack/TCPIP.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP
|
||||||
|
/* include timer, NTP functions */
|
||||||
|
#include "system/system_services.h"
|
||||||
|
#ifdef MICROCHIP_MPLAB_HARMONY
|
||||||
|
#include "tcpip/tcpip.h"
|
||||||
|
#else
|
||||||
|
#include "tcpip/sntp.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MBED
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#endif /* MBED */
|
||||||
|
|
||||||
|
#ifdef CYASSL_TYTO
|
||||||
|
#include "rand.h"
|
||||||
|
#define FREERTOS
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define HAVE_ECC
|
||||||
|
#define HAVE_ECC_ENCRYPT
|
||||||
|
#define ECC_SHAMIR
|
||||||
|
#define HAVE_HKDF
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#define FP_MAX_BITS 512
|
||||||
|
#define NO_OLD_TLS
|
||||||
|
#define NO_MD4
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_PWDBASED
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREERTOS_WINSIM
|
||||||
|
#define FREERTOS
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Micrium will use Visual Studio for compilation but not the Win32 API */
|
||||||
|
#if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) \
|
||||||
|
&& !defined(EBSNET)
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(CYASSL_LEANPSK) && !defined(XMALLOC_USER)
|
||||||
|
#include <stdlib.h>
|
||||||
|
#define XMALLOC(s, h, type) malloc((s))
|
||||||
|
#define XFREE(p, h, type) free((p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(XMALLOC_USER) && defined(SSN_BUILDING_LIBYASSL)
|
||||||
|
#undef XMALLOC
|
||||||
|
#define XMALLOC yaXMALLOC
|
||||||
|
#undef XFREE
|
||||||
|
#define XFREE yaXFREE
|
||||||
|
#undef XREALLOC
|
||||||
|
#define XREALLOC yaXREALLOC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FREERTOS
|
||||||
|
#ifndef NO_WRITEV
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
#ifndef NO_SHA512
|
||||||
|
#define NO_SHA512
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DH
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DSA
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
#ifndef NO_HC128
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "semphr.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef EBSNET
|
||||||
|
#include "rtip.h"
|
||||||
|
|
||||||
|
/* #define DEBUG_CYASSL */
|
||||||
|
#define NO_CYASSL_DIR /* tbd */
|
||||||
|
|
||||||
|
#if (POLLOS)
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (RTPLATFORM)
|
||||||
|
#if (!RTP_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if (!KS_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (WINMSP3)
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#else
|
||||||
|
#sslpro: settings.h - please implement SIZEOF_LONG and SIZEOF_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, type) ((void *)rtp_malloc((s), SSL_PRO_MALLOC))
|
||||||
|
#define XFREE(p, h, type) (rtp_free(p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
|
||||||
|
#endif /* EBSNET */
|
||||||
|
|
||||||
|
#ifdef CYASSL_GAME_BUILD
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#if defined(__PPU) || defined(__XENON)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LSR
|
||||||
|
#define HAVE_WEBSERVER
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define CYASSL_LOW_MEMORY
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#define LSR_FS
|
||||||
|
#include "inc/hw_types.h"
|
||||||
|
#include "fs.h"
|
||||||
|
#endif
|
||||||
|
#define CYASSL_LWIP
|
||||||
|
#include <errno.h> /* for tcp errno */
|
||||||
|
#define CYASSL_SAFERTOS
|
||||||
|
#if defined(__IAR_SYSTEMS_ICC__)
|
||||||
|
/* enum uses enum */
|
||||||
|
#pragma diag_suppress=Pa089
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_SAFERTOS
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "SafeRTOS/semphr.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "SafeRTOS/heap.h"
|
||||||
|
#define XMALLOC(s, h, type) pvPortMalloc((s))
|
||||||
|
#define XFREE(p, h, type) vPortFree((p))
|
||||||
|
#define XREALLOC(p, n, h, t) pvPortRealloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LOW_MEMORY
|
||||||
|
#undef RSA_LOW_MEM
|
||||||
|
#define RSA_LOW_MEM
|
||||||
|
#undef CYASSL_SMALL_STACK
|
||||||
|
#define CYASSL_SMALL_STACK
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREESCALE_MQX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#define FREESCALE_K70_RNGA
|
||||||
|
/* #define FREESCALE_K53_RNGB */
|
||||||
|
#include "mqx.h"
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#include "mfs.h"
|
||||||
|
#include "fio.h"
|
||||||
|
#endif
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "mutex.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, t) (void *)_mem_alloc_system((s))
|
||||||
|
#define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));}
|
||||||
|
/* Note: MQX has no realloc, using fastmath above */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_STM32F2
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define STM32F2_RNG
|
||||||
|
#define STM32F2_CRYPTO
|
||||||
|
#define KEIL_INTRINSICS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICRIUM
|
||||||
|
|
||||||
|
#include "stdlib.h"
|
||||||
|
#include "net_cfg.h"
|
||||||
|
#include "ssl_cfg.h"
|
||||||
|
#include "net_secure_os.h"
|
||||||
|
|
||||||
|
#define CYASSL_TYPES
|
||||||
|
|
||||||
|
typedef CPU_INT08U byte;
|
||||||
|
typedef CPU_INT16U word16;
|
||||||
|
typedef CPU_INT32U word32;
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_WORD_SIZE == CPU_WORD_SIZE_32)
|
||||||
|
#define SIZEOF_LONG 4
|
||||||
|
#undef SIZEOF_LONG_LONG
|
||||||
|
#else
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STRING_USER
|
||||||
|
|
||||||
|
#define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr)))
|
||||||
|
#define XSTRNCPY(pstr_dest, pstr_src, len_max) \
|
||||||
|
((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \
|
||||||
|
(CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRNCMP(pstr_1, pstr_2, len_max) \
|
||||||
|
((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \
|
||||||
|
(CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRSTR(pstr, pstr_srch) \
|
||||||
|
((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \
|
||||||
|
(CPU_CHAR *)(pstr_srch)))
|
||||||
|
#define XMEMSET(pmem, data_val, size) \
|
||||||
|
((void)Mem_Set((void *)(pmem), (CPU_INT08U) (data_val), \
|
||||||
|
(CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \
|
||||||
|
(void *)(psrc), (CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCMP(pmem_1, pmem_2, size) \
|
||||||
|
(((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), (void *)(pmem_2), \
|
||||||
|
(CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES)
|
||||||
|
#define XMEMMOVE XMEMCPY
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
|
||||||
|
#define MICRIUM_MALLOC
|
||||||
|
#define XMALLOC(s, h, type) ((void *)NetSecure_BlkGet((CPU_INT08U)(type), \
|
||||||
|
(CPU_SIZE_T)(s), (void *)0))
|
||||||
|
#define XFREE(p, h, type) (NetSecure_BlkFree((CPU_INT08U)(type), \
|
||||||
|
(p), (void *)0))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_FS_EN == DEF_ENABLED)
|
||||||
|
#undef NO_FILESYSTEM
|
||||||
|
#else
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TRACE_LEVEL == CYASSL_TRACE_LEVEL_DBG)
|
||||||
|
#define DEBUG_CYASSL
|
||||||
|
#else
|
||||||
|
#undef DEBUG_CYASSL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_OPENSSL_EN == DEF_ENABLED)
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#else
|
||||||
|
#undef OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MULTI_THREAD_EN == DEF_ENABLED)
|
||||||
|
#undef SINGLE_THREADED
|
||||||
|
#else
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DH_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DH
|
||||||
|
#else
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DSA_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DSA
|
||||||
|
#else
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_PSK_EN == DEF_ENABLED)
|
||||||
|
#undef NO_PSK
|
||||||
|
#else
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_3DES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DES
|
||||||
|
#else
|
||||||
|
#define NO_DES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_AES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_AES
|
||||||
|
#else
|
||||||
|
#define NO_AES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RC4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RC4
|
||||||
|
#else
|
||||||
|
#define NO_RC4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RABBIT_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RABBIT
|
||||||
|
#else
|
||||||
|
#define NO_RABBIT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_HC128_EN == DEF_ENABLED)
|
||||||
|
#undef NO_HC128
|
||||||
|
#else
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#else
|
||||||
|
#undef BIG_ENDIAN_ORDER
|
||||||
|
#define LITTLE_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MD4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_MD4
|
||||||
|
#else
|
||||||
|
#define NO_MD4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_WRITEV_EN == DEF_ENABLED)
|
||||||
|
#undef NO_WRITEV
|
||||||
|
#else
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_RNG_SEED_EN == DEF_ENABLED)
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#else
|
||||||
|
#undef NO_DEV_RANDOM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_IO_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#else
|
||||||
|
#undef CYASSL_USER_IO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DYNAMIC_BUFFERS_EN == DEF_ENABLED)
|
||||||
|
#undef LARGE_STATIC_BUFFERS
|
||||||
|
#undef STATIC_CHUNKS_ONLY
|
||||||
|
#else
|
||||||
|
#define LARGE_STATIC_BUFFERS
|
||||||
|
#define STATIC_CHUNKS_ONLY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DER_LOAD_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DTLS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DTLS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DTLS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_CALLBACKS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_CALLBACKS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_CALLBACKS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_FAST_MATH_EN == DEF_ENABLED)
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#else
|
||||||
|
#undef USE_FAST_MATH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TFM_TIMING_RESISTANT_EN == DEF_ENABLED)
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#else
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* MICRIUM */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_QL
|
||||||
|
#ifndef CYASSL_SEP
|
||||||
|
#define CYASSL_SEP
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_EXTRA
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_CERTS
|
||||||
|
#define SESSION_CERTS
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_AESCCM
|
||||||
|
#define HAVE_AESCCM
|
||||||
|
#endif
|
||||||
|
#ifndef ATOMIC_USER
|
||||||
|
#define ATOMIC_USER
|
||||||
|
#endif
|
||||||
|
#ifndef CYASSL_DER_LOAD
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
#ifndef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_ECC
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_INDEX
|
||||||
|
#define SESSION_INDEX
|
||||||
|
#endif
|
||||||
|
#endif /* CYASSL_QL */
|
||||||
|
|
||||||
|
|
||||||
|
#if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \
|
||||||
|
!defined(CYASSL_LEANPSK) && !defined(NO_CYASSL_MEMORY)
|
||||||
|
#define USE_CYASSL_MEMORY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS)
|
||||||
|
#undef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* stream ciphers except arc4 need 32bit alignment, intel ok without */
|
||||||
|
#ifndef XSTREAM_ALIGNMENT
|
||||||
|
#if defined(__x86_64__) || defined(__ia64__) || defined(__i386__)
|
||||||
|
#define NO_XSTREAM_ALIGNMENT
|
||||||
|
#else
|
||||||
|
#define XSTREAM_ALIGNMENT
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* if using hardware crypto and have alignment requirements, specify the
|
||||||
|
requirement here. The record header of SSL/TLS will prvent easy alignment.
|
||||||
|
This hint tries to help as much as possible. */
|
||||||
|
#ifndef CYASSL_GENERAL_ALIGNMENT
|
||||||
|
#ifdef CYASSL_AESNI
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 16
|
||||||
|
#elif defined(XSTREAM_ALIGNMENT)
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 4
|
||||||
|
#else
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CRL
|
||||||
|
/* not widely supported yet */
|
||||||
|
#undef NO_SKID
|
||||||
|
#define NO_SKID
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Place any other flags or defines here */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* CTAO_CRYPT_SETTINGS_H */
|
||||||
|
|
|
@ -0,0 +1,368 @@
|
||||||
|
/* echoserver.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/settings.h>
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_ARM)
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK5)
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#include "rl_fs.h"
|
||||||
|
#include "rl_net.h"
|
||||||
|
#else
|
||||||
|
#include "rtl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ssl.h>
|
||||||
|
#include <cyassl/test.h>
|
||||||
|
|
||||||
|
#ifndef NO_MAIN_DRIVER
|
||||||
|
#define ECHO_OUT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "examples/echoserver/echoserver.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef SESSION_STATS
|
||||||
|
CYASSL_API void PrintSessionStats(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SVR_COMMAND_SIZE 256
|
||||||
|
|
||||||
|
static void SignalReady(void* args, word16 port)
|
||||||
|
{
|
||||||
|
#if defined(_POSIX_THREADS) && defined(NO_MAIN_DRIVER) && !defined(__MINGW32__)
|
||||||
|
/* signal ready to tcp_accept */
|
||||||
|
func_args* server_args = (func_args*)args;
|
||||||
|
tcp_ready* ready = server_args->signal;
|
||||||
|
pthread_mutex_lock(&ready->mutex);
|
||||||
|
ready->ready = 1;
|
||||||
|
ready->port = port;
|
||||||
|
pthread_cond_signal(&ready->cond);
|
||||||
|
pthread_mutex_unlock(&ready->mutex);
|
||||||
|
#endif
|
||||||
|
(void)args;
|
||||||
|
(void)port;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
THREAD_RETURN CYASSL_THREAD echoserver_test(void* args)
|
||||||
|
{
|
||||||
|
SOCKET_T sockfd = 0;
|
||||||
|
CYASSL_METHOD* method = 0;
|
||||||
|
CYASSL_CTX* ctx = 0;
|
||||||
|
|
||||||
|
int doDTLS = 0;
|
||||||
|
int doPSK = 0;
|
||||||
|
int outCreated = 0;
|
||||||
|
int shutDown = 0;
|
||||||
|
int useAnyAddr = 0;
|
||||||
|
word16 port = yasslPort;
|
||||||
|
int argc = ((func_args*)args)->argc;
|
||||||
|
char** argv = ((func_args*)args)->argv;
|
||||||
|
|
||||||
|
#ifdef ECHO_OUT
|
||||||
|
FILE* fout = stdout;
|
||||||
|
if (argc >= 2) {
|
||||||
|
fout = fopen(argv[1], "w");
|
||||||
|
outCreated = 1;
|
||||||
|
}
|
||||||
|
if (!fout) err_sys("can't open output file");
|
||||||
|
#endif
|
||||||
|
(void)outCreated;
|
||||||
|
(void)argc;
|
||||||
|
(void)argv;
|
||||||
|
|
||||||
|
((func_args*)args)->return_code = -1; /* error state */
|
||||||
|
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
doDTLS = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LEANPSK
|
||||||
|
doPSK = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(NO_RSA) && !defined(HAVE_ECC)
|
||||||
|
doPSK = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(NO_MAIN_DRIVER) && !defined(USE_WINDOWS_API) && \
|
||||||
|
!defined(CYASSL_SNIFFER) && !defined(CYASSL_MDK_SHELL)
|
||||||
|
port = 0;
|
||||||
|
#endif
|
||||||
|
#if defined(USE_ANY_ADDR)
|
||||||
|
useAnyAddr = 1;
|
||||||
|
#endif
|
||||||
|
tcp_listen(&sockfd, &port, useAnyAddr, doDTLS);
|
||||||
|
|
||||||
|
#if defined(CYASSL_DTLS)
|
||||||
|
method = CyaDTLSv1_server_method();
|
||||||
|
#elif !defined(NO_TLS)
|
||||||
|
method = CyaSSLv23_server_method();
|
||||||
|
#else
|
||||||
|
method = CyaSSLv3_server_method();
|
||||||
|
#endif
|
||||||
|
ctx = CyaSSL_CTX_new(method);
|
||||||
|
/* CyaSSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_OFF); */
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
|
CyaSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
if (doPSK == 0) {
|
||||||
|
#ifdef HAVE_NTRU
|
||||||
|
/* ntru */
|
||||||
|
if (CyaSSL_CTX_use_certificate_file(ctx, ntruCert, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load ntru cert file, "
|
||||||
|
"Please run from CyaSSL home dir");
|
||||||
|
|
||||||
|
if (CyaSSL_CTX_use_NTRUPrivateKey_file(ctx, ntruKey)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load ntru key file, "
|
||||||
|
"Please run from CyaSSL home dir");
|
||||||
|
#elif defined(HAVE_ECC)
|
||||||
|
/* ecc */
|
||||||
|
if (CyaSSL_CTX_use_certificate_file(ctx, eccCert, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load server cert file, "
|
||||||
|
"Please run from CyaSSL home dir");
|
||||||
|
|
||||||
|
if (CyaSSL_CTX_use_PrivateKey_file(ctx, eccKey, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load server key file, "
|
||||||
|
"Please run from CyaSSL home dir");
|
||||||
|
#elif defined(NO_CERTS)
|
||||||
|
/* do nothing, just don't load cert files */
|
||||||
|
#else
|
||||||
|
/* normal */
|
||||||
|
if (CyaSSL_CTX_use_certificate_file(ctx, svrCert, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load server cert file, "
|
||||||
|
"Please run from CyaSSL home dir");
|
||||||
|
|
||||||
|
if (CyaSSL_CTX_use_PrivateKey_file(ctx, svrKey, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load server key file, "
|
||||||
|
"Please run from CyaSSL home dir");
|
||||||
|
#endif
|
||||||
|
} /* doPSK */
|
||||||
|
#elif !defined(NO_CERTS)
|
||||||
|
if (!doPSK) {
|
||||||
|
load_buffer(ctx, svrCert, CYASSL_CERT);
|
||||||
|
load_buffer(ctx, svrKey, CYASSL_KEY);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CYASSL_SNIFFER) && !defined(HAVE_NTRU) && !defined(HAVE_ECC)
|
||||||
|
/* don't use EDH, can't sniff tmp keys */
|
||||||
|
CyaSSL_CTX_set_cipher_list(ctx, "AES256-SHA");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (doPSK) {
|
||||||
|
#ifndef NO_PSK
|
||||||
|
const char *defaultCipherList;
|
||||||
|
|
||||||
|
CyaSSL_CTX_set_psk_server_callback(ctx, my_psk_server_cb);
|
||||||
|
CyaSSL_CTX_use_psk_identity_hint(ctx, "cyassl server");
|
||||||
|
#ifdef HAVE_NULL_CIPHER
|
||||||
|
defaultCipherList = "PSK-NULL-SHA256";
|
||||||
|
#else
|
||||||
|
defaultCipherList = "PSK-AES128-CBC-SHA256";
|
||||||
|
#endif
|
||||||
|
if (CyaSSL_CTX_set_cipher_list(ctx, defaultCipherList) != SSL_SUCCESS)
|
||||||
|
err_sys("server can't set cipher list 2");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
SignalReady(args, port);
|
||||||
|
|
||||||
|
while (!shutDown) {
|
||||||
|
CYASSL* ssl = 0;
|
||||||
|
char command[SVR_COMMAND_SIZE+1];
|
||||||
|
int echoSz = 0;
|
||||||
|
int clientfd;
|
||||||
|
int firstRead = 1;
|
||||||
|
int gotFirstG = 0;
|
||||||
|
|
||||||
|
#ifndef CYASSL_DTLS
|
||||||
|
SOCKADDR_IN_T client;
|
||||||
|
socklen_t client_len = sizeof(client);
|
||||||
|
clientfd = accept(sockfd, (struct sockaddr*)&client,
|
||||||
|
(ACCEPT_THIRD_T)&client_len);
|
||||||
|
#else
|
||||||
|
clientfd = udp_read_connect(sockfd);
|
||||||
|
#endif
|
||||||
|
if (clientfd == -1) err_sys("tcp accept failed");
|
||||||
|
|
||||||
|
ssl = CyaSSL_new(ctx);
|
||||||
|
if (ssl == NULL) err_sys("SSL_new failed");
|
||||||
|
CyaSSL_set_fd(ssl, clientfd);
|
||||||
|
#if !defined(NO_FILESYSTEM) && defined(OPENSSL_EXTRA)
|
||||||
|
CyaSSL_SetTmpDH_file(ssl, dhParam, SSL_FILETYPE_PEM);
|
||||||
|
#elif !defined(NO_CERTS)
|
||||||
|
SetDH(ssl); /* will repick suites with DHE, higher than PSK */
|
||||||
|
#endif
|
||||||
|
if (CyaSSL_accept(ssl) != SSL_SUCCESS) {
|
||||||
|
printf("SSL_accept failed\n");
|
||||||
|
CyaSSL_free(ssl);
|
||||||
|
CloseSocket(clientfd);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
#if defined(PEER_INFO)
|
||||||
|
showPeer(ssl);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
while ( (echoSz = CyaSSL_read(ssl, command, sizeof(command)-1)) > 0) {
|
||||||
|
|
||||||
|
if (firstRead == 1) {
|
||||||
|
firstRead = 0; /* browser may send 1 byte 'G' to start */
|
||||||
|
if (echoSz == 1 && command[0] == 'G') {
|
||||||
|
gotFirstG = 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (gotFirstG == 1 && strncmp(command, "ET /", 4) == 0) {
|
||||||
|
strncpy(command, "GET", 4);
|
||||||
|
/* fall through to normal GET */
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( strncmp(command, "quit", 4) == 0) {
|
||||||
|
printf("client sent quit command: shutting down!\n");
|
||||||
|
shutDown = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ( strncmp(command, "break", 5) == 0) {
|
||||||
|
printf("client sent break command: closing session!\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#ifdef SESSION_STATS
|
||||||
|
if ( strncmp(command, "printstats", 10) == 0) {
|
||||||
|
PrintSessionStats();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if ( strncmp(command, "GET", 3) == 0) {
|
||||||
|
char type[] = "HTTP/1.0 200 ok\r\nContent-type:"
|
||||||
|
" text/html\r\n\r\n";
|
||||||
|
char header[] = "<html><body BGCOLOR=\"#ffffff\">\n<pre>\n";
|
||||||
|
char body[] = "greetings from CyaSSL\n";
|
||||||
|
char footer[] = "</body></html>\r\n\r\n";
|
||||||
|
|
||||||
|
strncpy(command, type, sizeof(type));
|
||||||
|
echoSz = sizeof(type) - 1;
|
||||||
|
|
||||||
|
strncpy(&command[echoSz], header, sizeof(header));
|
||||||
|
echoSz += (int)sizeof(header) - 1;
|
||||||
|
strncpy(&command[echoSz], body, sizeof(body));
|
||||||
|
echoSz += (int)sizeof(body) - 1;
|
||||||
|
strncpy(&command[echoSz], footer, sizeof(footer));
|
||||||
|
echoSz += (int)sizeof(footer);
|
||||||
|
|
||||||
|
if (CyaSSL_write(ssl, command, echoSz) != echoSz)
|
||||||
|
err_sys("SSL_write failed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
command[echoSz] = 0;
|
||||||
|
|
||||||
|
#ifdef ECHO_OUT
|
||||||
|
fputs(command, fout);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (CyaSSL_write(ssl, command, echoSz) != echoSz)
|
||||||
|
err_sys("SSL_write failed");
|
||||||
|
}
|
||||||
|
#ifndef CYASSL_DTLS
|
||||||
|
CyaSSL_shutdown(ssl);
|
||||||
|
#endif
|
||||||
|
CyaSSL_free(ssl);
|
||||||
|
CloseSocket(clientfd);
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
tcp_listen(&sockfd, &port, useAnyAddr, doDTLS);
|
||||||
|
SignalReady(args, port);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
CloseSocket(sockfd);
|
||||||
|
CyaSSL_CTX_free(ctx);
|
||||||
|
|
||||||
|
#ifdef ECHO_OUT
|
||||||
|
if (outCreated)
|
||||||
|
fclose(fout);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
((func_args*)args)->return_code = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* so overall tests can pull in test function */
|
||||||
|
#ifndef NO_MAIN_DRIVER
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
func_args args;
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
int ret = OpenNitroxDevice(CAVIUM_DIRECT, CAVIUM_DEV_ID);
|
||||||
|
if (ret != 0)
|
||||||
|
err_sys("Cavium OpenNitroxDevice failed");
|
||||||
|
#endif /* HAVE_CAVIUM */
|
||||||
|
|
||||||
|
StartTCP();
|
||||||
|
|
||||||
|
args.argc = argc;
|
||||||
|
args.argv = argv;
|
||||||
|
|
||||||
|
CyaSSL_Init();
|
||||||
|
#if defined(DEBUG_CYASSL) && !defined(CYASSL_MDK_SHELL)
|
||||||
|
CyaSSL_Debugging_ON();
|
||||||
|
#endif
|
||||||
|
if (CurrentDir("echoserver"))
|
||||||
|
ChangeDirBack(2);
|
||||||
|
else if (CurrentDir("Debug") || CurrentDir("Release"))
|
||||||
|
ChangeDirBack(3);
|
||||||
|
echoserver_test(&args);
|
||||||
|
CyaSSL_Cleanup();
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
CspShutdown(CAVIUM_DEV_ID);
|
||||||
|
#endif
|
||||||
|
return args.return_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* NO_MAIN_DRIVER */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,98 @@
|
||||||
|
/* main.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
#include <cyassl/ctaocrypt/logging.h>
|
||||||
|
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#include "rl_fs.h"
|
||||||
|
#include "rl_net.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
#include <cyassl/ssl.h>
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* Initialize a Flash Memory Card
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
static void init_filesystem (void) {
|
||||||
|
int32_t retv;
|
||||||
|
|
||||||
|
retv = finit ("M0:");
|
||||||
|
if (retv == 0) {
|
||||||
|
retv = fmount ("M0:");
|
||||||
|
if (retv == 0) {
|
||||||
|
printf ("Drive M0 ready!\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf ("Drive M0 mount failed!\n");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
printf ("Drive M0 initialization failed!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* TCP/IP tasks
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
void tcp_poll (void const *arg)
|
||||||
|
{
|
||||||
|
CYASSL_MSG("TCP polling started.\n") ;
|
||||||
|
while (1) {
|
||||||
|
net_main ();
|
||||||
|
osDelay(1) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef struct func_args {
|
||||||
|
int argc;
|
||||||
|
char** argv;
|
||||||
|
} func_args;
|
||||||
|
|
||||||
|
extern void echoserver_test(func_args * args) ;
|
||||||
|
extern void init_time(void) ;
|
||||||
|
|
||||||
|
osThreadDef (tcp_poll, osPriorityHigh, 1, 0) ;
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* mian entry
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
int myoptind = 0;
|
||||||
|
char* myoptarg = NULL;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
void *args = NULL ;
|
||||||
|
init_filesystem ();
|
||||||
|
net_initialize() ;
|
||||||
|
osThreadCreate (osThread (tcp_poll), NULL);
|
||||||
|
osDelay(10000) ; /* wait for DHCP */
|
||||||
|
#if defined(DEBUG_CYASSL)
|
||||||
|
printf("Turning ON Debug message\n") ;
|
||||||
|
CyaSSL_Debugging_ON() ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
printf("echoserver: Started\n") ;
|
||||||
|
echoserver_test(args) ;
|
||||||
|
printf("echoserver: Terminated\n") ;
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
/* time-dummy.c.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "time.h"
|
||||||
|
|
||||||
|
struct tm *Cyassl_MDK_gmtime(const time_t *c)
|
||||||
|
{
|
||||||
|
static struct tm date ;
|
||||||
|
return(&date) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
time_t time(time_t * t) { return 0 ; }
|
|
@ -0,0 +1,23 @@
|
||||||
|
This program is a simple client example with CyaSSL/wolfCrypt library.
|
||||||
|
|
||||||
|
In order to run this program,
|
||||||
|
Copy {PACK}\wolfSSL\CyaSSL\{version}\cyassl\certs folder and files to the SD memory.
|
||||||
|
Set config-SimpleClient.h configuration file for the Callee IP or Port number.
|
||||||
|
|
||||||
|
For further configuration, refer config-Crypt.h and config-CyaSSL.h.
|
||||||
|
config-SimpleClient.h is to configure repote callee IP and port.
|
||||||
|
|
||||||
|
When testing this client, it is recommended to test against one of the standard
|
||||||
|
CyaSSL example applications running on a desktop machine. The standard CyaSSL
|
||||||
|
example applications are located in the CyaSSL root directory under the
|
||||||
|
<cyassl_root>/examples directory.
|
||||||
|
|
||||||
|
For the hardware crypt on config-Crypt.h, download
|
||||||
|
STSW-STM32062: STM32F2xx standard peripherals library at
|
||||||
|
http://www.st.com/. Copy Libraries\STM32F2xx_StdPeriph_Driver\{inc,src} to
|
||||||
|
{PACK}\cyassl\IDE\MDK5-ARM\STM32F2xx_StdPeriph_Lib
|
||||||
|
|
||||||
|
|
||||||
|
Support
|
||||||
|
-------
|
||||||
|
Please send questions or comments to support@wolfssl.com
|
|
@ -0,0 +1,667 @@
|
||||||
|
/* settings.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Place OS specific preprocessor flags, defines, includes here, will be
|
||||||
|
included into every file because types.h includes it */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef CTAO_CRYPT_SETTINGS_H
|
||||||
|
#define CTAO_CRYPT_SETTINGS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Uncomment next line if using IPHONE */
|
||||||
|
/* #define IPHONE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using ThreadX */
|
||||||
|
/* #define THREADX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Micrium ucOS */
|
||||||
|
/* #define MICRIUM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Mbed */
|
||||||
|
/* #define MBED */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip PIC32 ethernet starter kit */
|
||||||
|
/* #define MICROCHIP_PIC32 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 5 */
|
||||||
|
/* #define MICROCHIP_TCPIP_V5 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 6 or later */
|
||||||
|
/* #define MICROCHIP_TCPIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if using PIC32MZ Crypto Engine */
|
||||||
|
/* #define CYASSL_MICROCHIP_PIC32MZ */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS */
|
||||||
|
/* #define FREERTOS */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS Windows Simulator */
|
||||||
|
/* #define FREERTOS_WINSIM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using RTIP */
|
||||||
|
/* #define EBSNET */
|
||||||
|
|
||||||
|
/* Uncomment next line if using lwip */
|
||||||
|
/* #define CYASSL_LWIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for a game console */
|
||||||
|
/* #define CYASSL_GAME_BUILD */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for LSR */
|
||||||
|
/* #define CYASSL_LSR */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for Freescale MQX/RTCS/MFS */
|
||||||
|
/* #define FREESCALE_MQX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using STM32F2 */
|
||||||
|
/* #define CYASSL_STM32F2 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Comverge settings */
|
||||||
|
/* #define COMVERGE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using QL SEP settings */
|
||||||
|
/* #define CYASSL_QL */
|
||||||
|
|
||||||
|
/* Uncomment next line if using LwIP native TCP socket settings */
|
||||||
|
/* #define HAVE_LWIP_NATIVE */
|
||||||
|
|
||||||
|
/* Uncomment next line if building for EROAD */
|
||||||
|
/* #define CYASSL_EROAD */
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
|
||||||
|
#ifdef IPHONE
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_USER_SETTINGS
|
||||||
|
#include <user_settings.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef COMVERGE
|
||||||
|
#define THREADX
|
||||||
|
#define HAVE_NETX
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef THREADX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_NETX
|
||||||
|
#include "nx_api.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_LWIP_NATIVE) /* using LwIP native TCP socket */
|
||||||
|
#define CYASSL_LWIP
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_PIC32
|
||||||
|
/* #define CYASSL_MICROCHIP_PIC32MZ */
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_MICROCHIP_PIC32MZ
|
||||||
|
#define CYASSL_PIC32MZ_CE
|
||||||
|
#define CYASSL_PIC32MZ_CRYPT
|
||||||
|
#define HAVE_AES_ENGINE
|
||||||
|
#define CYASSL_PIC32MZ_RNG
|
||||||
|
/* #define CYASSL_PIC32MZ_HASH */
|
||||||
|
#define CYASSL_AES_COUNTER
|
||||||
|
#define HAVE_AESGCM
|
||||||
|
#define NO_BIG_INT
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP_V5
|
||||||
|
/* include timer functions */
|
||||||
|
#include "TCPIP Stack/TCPIP.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP
|
||||||
|
/* include timer, NTP functions */
|
||||||
|
#ifdef MICROCHIP_MPLAB_HARMONY
|
||||||
|
#include "tcpip/tcpip.h"
|
||||||
|
#else
|
||||||
|
#include "system/system_services.h"
|
||||||
|
#include "tcpip/sntp.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MBED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define NO_CERT
|
||||||
|
#define USE_CERT_BUFFERS_1024
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define HAVE_ECC
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define CYASSL_CMSIS_RTOS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_EROAD
|
||||||
|
#define FREESCALE_MQX
|
||||||
|
#define FREESCALE_MMCAU
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define NO_STDIO_FILESYSTEM
|
||||||
|
#define CYASSL_LEANPSK
|
||||||
|
#define HAVE_NULL_CIPHER
|
||||||
|
#define NO_OLD_TLS
|
||||||
|
#define NO_ASN
|
||||||
|
#define NO_BIG_INT
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_CERTS
|
||||||
|
#define NO_PWDBASED
|
||||||
|
#define NO_DES3
|
||||||
|
#define NO_MD4
|
||||||
|
#define NO_RC4
|
||||||
|
#define NO_MD5
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define NO_MAIN_DRIVER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREERTOS_WINSIM
|
||||||
|
#define FREERTOS
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Micrium will use Visual Studio for compilation but not the Win32 API */
|
||||||
|
#if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) \
|
||||||
|
&& !defined(EBSNET) && !defined(CYASSL_EROAD)
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(CYASSL_LEANPSK) && !defined(XMALLOC_USER)
|
||||||
|
#include <stdlib.h>
|
||||||
|
#define XMALLOC(s, h, type) malloc((s))
|
||||||
|
#define XFREE(p, h, type) free((p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(XMALLOC_USER) && defined(SSN_BUILDING_LIBYASSL)
|
||||||
|
#undef XMALLOC
|
||||||
|
#define XMALLOC yaXMALLOC
|
||||||
|
#undef XFREE
|
||||||
|
#define XFREE yaXFREE
|
||||||
|
#undef XREALLOC
|
||||||
|
#define XREALLOC yaXREALLOC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FREERTOS
|
||||||
|
#ifndef NO_WRITEV
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
#ifndef NO_SHA512
|
||||||
|
#define NO_SHA512
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DH
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DSA
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
#ifndef NO_HC128
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "semphr.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef EBSNET
|
||||||
|
#include "rtip.h"
|
||||||
|
|
||||||
|
/* #define DEBUG_CYASSL */
|
||||||
|
#define NO_CYASSL_DIR /* tbd */
|
||||||
|
|
||||||
|
#if (POLLOS)
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (RTPLATFORM)
|
||||||
|
#if (!RTP_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if (!KS_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (WINMSP3)
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#else
|
||||||
|
#sslpro: settings.h - please implement SIZEOF_LONG and SIZEOF_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, type) ((void *)rtp_malloc((s), SSL_PRO_MALLOC))
|
||||||
|
#define XFREE(p, h, type) (rtp_free(p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
|
||||||
|
#endif /* EBSNET */
|
||||||
|
|
||||||
|
#ifdef CYASSL_GAME_BUILD
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#if defined(__PPU) || defined(__XENON)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LSR
|
||||||
|
#define HAVE_WEBSERVER
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define CYASSL_LOW_MEMORY
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#define LSR_FS
|
||||||
|
#include "inc/hw_types.h"
|
||||||
|
#include "fs.h"
|
||||||
|
#endif
|
||||||
|
#define CYASSL_LWIP
|
||||||
|
#include <errno.h> /* for tcp errno */
|
||||||
|
#define CYASSL_SAFERTOS
|
||||||
|
#if defined(__IAR_SYSTEMS_ICC__)
|
||||||
|
/* enum uses enum */
|
||||||
|
#pragma diag_suppress=Pa089
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_SAFERTOS
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "SafeRTOS/semphr.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "SafeRTOS/heap.h"
|
||||||
|
#define XMALLOC(s, h, type) pvPortMalloc((s))
|
||||||
|
#define XFREE(p, h, type) vPortFree((p))
|
||||||
|
#define XREALLOC(p, n, h, t) pvPortRealloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LOW_MEMORY
|
||||||
|
#undef RSA_LOW_MEM
|
||||||
|
#define RSA_LOW_MEM
|
||||||
|
#undef CYASSL_SMALL_STACK
|
||||||
|
#define CYASSL_SMALL_STACK
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREESCALE_MQX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#define FREESCALE_K70_RNGA
|
||||||
|
/* #define FREESCALE_K53_RNGB */
|
||||||
|
#include "mqx.h"
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#include "mfs.h"
|
||||||
|
#include "fio.h"
|
||||||
|
#endif
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "mutex.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, t) (void *)_mem_alloc_system((s))
|
||||||
|
#define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));}
|
||||||
|
/* Note: MQX has no realloc, using fastmath above */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_STM32F2
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define STM32F2_RNG
|
||||||
|
#define STM32F2_CRYPTO
|
||||||
|
#define KEIL_INTRINSICS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICRIUM
|
||||||
|
|
||||||
|
#include "stdlib.h"
|
||||||
|
#include "net_cfg.h"
|
||||||
|
#include "ssl_cfg.h"
|
||||||
|
#include "net_secure_os.h"
|
||||||
|
|
||||||
|
#define CYASSL_TYPES
|
||||||
|
|
||||||
|
typedef CPU_INT08U byte;
|
||||||
|
typedef CPU_INT16U word16;
|
||||||
|
typedef CPU_INT32U word32;
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_WORD_SIZE == CPU_WORD_SIZE_32)
|
||||||
|
#define SIZEOF_LONG 4
|
||||||
|
#undef SIZEOF_LONG_LONG
|
||||||
|
#else
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STRING_USER
|
||||||
|
|
||||||
|
#define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr)))
|
||||||
|
#define XSTRNCPY(pstr_dest, pstr_src, len_max) \
|
||||||
|
((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \
|
||||||
|
(CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRNCMP(pstr_1, pstr_2, len_max) \
|
||||||
|
((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \
|
||||||
|
(CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRSTR(pstr, pstr_srch) \
|
||||||
|
((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \
|
||||||
|
(CPU_CHAR *)(pstr_srch)))
|
||||||
|
#define XMEMSET(pmem, data_val, size) \
|
||||||
|
((void)Mem_Set((void *)(pmem), (CPU_INT08U) (data_val), \
|
||||||
|
(CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \
|
||||||
|
(void *)(psrc), (CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCMP(pmem_1, pmem_2, size) \
|
||||||
|
(((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), (void *)(pmem_2), \
|
||||||
|
(CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES)
|
||||||
|
#define XMEMMOVE XMEMCPY
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
|
||||||
|
#define MICRIUM_MALLOC
|
||||||
|
#define XMALLOC(s, h, type) ((void *)NetSecure_BlkGet((CPU_INT08U)(type), \
|
||||||
|
(CPU_SIZE_T)(s), (void *)0))
|
||||||
|
#define XFREE(p, h, type) (NetSecure_BlkFree((CPU_INT08U)(type), \
|
||||||
|
(p), (void *)0))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_FS_EN == DEF_ENABLED)
|
||||||
|
#undef NO_FILESYSTEM
|
||||||
|
#else
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TRACE_LEVEL == CYASSL_TRACE_LEVEL_DBG)
|
||||||
|
#define DEBUG_CYASSL
|
||||||
|
#else
|
||||||
|
#undef DEBUG_CYASSL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_OPENSSL_EN == DEF_ENABLED)
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#else
|
||||||
|
#undef OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MULTI_THREAD_EN == DEF_ENABLED)
|
||||||
|
#undef SINGLE_THREADED
|
||||||
|
#else
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DH_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DH
|
||||||
|
#else
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DSA_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DSA
|
||||||
|
#else
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_PSK_EN == DEF_ENABLED)
|
||||||
|
#undef NO_PSK
|
||||||
|
#else
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_3DES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DES
|
||||||
|
#else
|
||||||
|
#define NO_DES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_AES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_AES
|
||||||
|
#else
|
||||||
|
#define NO_AES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RC4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RC4
|
||||||
|
#else
|
||||||
|
#define NO_RC4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RABBIT_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RABBIT
|
||||||
|
#else
|
||||||
|
#define NO_RABBIT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_HC128_EN == DEF_ENABLED)
|
||||||
|
#undef NO_HC128
|
||||||
|
#else
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#else
|
||||||
|
#undef BIG_ENDIAN_ORDER
|
||||||
|
#define LITTLE_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MD4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_MD4
|
||||||
|
#else
|
||||||
|
#define NO_MD4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_WRITEV_EN == DEF_ENABLED)
|
||||||
|
#undef NO_WRITEV
|
||||||
|
#else
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_RNG_SEED_EN == DEF_ENABLED)
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#else
|
||||||
|
#undef NO_DEV_RANDOM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_IO_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#else
|
||||||
|
#undef CYASSL_USER_IO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DYNAMIC_BUFFERS_EN == DEF_ENABLED)
|
||||||
|
#undef LARGE_STATIC_BUFFERS
|
||||||
|
#undef STATIC_CHUNKS_ONLY
|
||||||
|
#else
|
||||||
|
#define LARGE_STATIC_BUFFERS
|
||||||
|
#define STATIC_CHUNKS_ONLY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DER_LOAD_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DTLS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DTLS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DTLS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_CALLBACKS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_CALLBACKS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_CALLBACKS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_FAST_MATH_EN == DEF_ENABLED)
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#else
|
||||||
|
#undef USE_FAST_MATH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TFM_TIMING_RESISTANT_EN == DEF_ENABLED)
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#else
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* MICRIUM */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_QL
|
||||||
|
#ifndef CYASSL_SEP
|
||||||
|
#define CYASSL_SEP
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_EXTRA
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_CERTS
|
||||||
|
#define SESSION_CERTS
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_AESCCM
|
||||||
|
#define HAVE_AESCCM
|
||||||
|
#endif
|
||||||
|
#ifndef ATOMIC_USER
|
||||||
|
#define ATOMIC_USER
|
||||||
|
#endif
|
||||||
|
#ifndef CYASSL_DER_LOAD
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
#ifndef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_ECC
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_INDEX
|
||||||
|
#define SESSION_INDEX
|
||||||
|
#endif
|
||||||
|
#endif /* CYASSL_QL */
|
||||||
|
|
||||||
|
|
||||||
|
#if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \
|
||||||
|
!defined(CYASSL_LEANPSK) && !defined(NO_CYASSL_MEMORY)
|
||||||
|
#define USE_CYASSL_MEMORY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS)
|
||||||
|
#undef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* stream ciphers except arc4 need 32bit alignment, intel ok without */
|
||||||
|
#ifndef XSTREAM_ALIGNMENT
|
||||||
|
#if defined(__x86_64__) || defined(__ia64__) || defined(__i386__)
|
||||||
|
#define NO_XSTREAM_ALIGNMENT
|
||||||
|
#else
|
||||||
|
#define XSTREAM_ALIGNMENT
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* if using hardware crypto and have alignment requirements, specify the
|
||||||
|
requirement here. The record header of SSL/TLS will prvent easy alignment.
|
||||||
|
This hint tries to help as much as possible. */
|
||||||
|
#ifndef CYASSL_GENERAL_ALIGNMENT
|
||||||
|
#ifdef CYASSL_AESNI
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 16
|
||||||
|
#elif defined(XSTREAM_ALIGNMENT)
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 4
|
||||||
|
#else
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CRL
|
||||||
|
/* not widely supported yet */
|
||||||
|
#undef NO_SKID
|
||||||
|
#define NO_SKID
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Place any other flags or defines here */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* CTAO_CRYPT_SETTINGS_H */
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,854 @@
|
||||||
|
/* client.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_ARM)
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK5)
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#include "rl_fs.h"
|
||||||
|
#include "rl_net.h"
|
||||||
|
#else
|
||||||
|
#include "rtl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/settings.h>
|
||||||
|
|
||||||
|
#if !defined(CYASSL_TRACK_MEMORY) && !defined(NO_MAIN_DRIVER)
|
||||||
|
/* in case memory tracker wants stats */
|
||||||
|
#define CYASSL_TRACK_MEMORY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ssl.h>
|
||||||
|
|
||||||
|
#include <cyassl/test.h>
|
||||||
|
|
||||||
|
#include "examples/client/client.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_CALLBACKS
|
||||||
|
int handShakeCB(HandShakeInfo*);
|
||||||
|
int timeoutCB(TimeoutInfo*);
|
||||||
|
Timeval timeout;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
static void NonBlockingSSL_Connect(CYASSL* ssl)
|
||||||
|
{
|
||||||
|
#ifndef CYASSL_CALLBACKS
|
||||||
|
int ret = CyaSSL_connect(ssl);
|
||||||
|
#else
|
||||||
|
int ret = CyaSSL_connect_ex(ssl, handShakeCB, timeoutCB, timeout);
|
||||||
|
#endif
|
||||||
|
int error = CyaSSL_get_error(ssl, 0);
|
||||||
|
SOCKET_T sockfd = (SOCKET_T)CyaSSL_get_fd(ssl);
|
||||||
|
int select_ret;
|
||||||
|
|
||||||
|
while (ret != SSL_SUCCESS && (error == SSL_ERROR_WANT_READ ||
|
||||||
|
error == SSL_ERROR_WANT_WRITE)) {
|
||||||
|
int currTimeout = 1;
|
||||||
|
|
||||||
|
if (error == SSL_ERROR_WANT_READ)
|
||||||
|
printf("... client would read block\n");
|
||||||
|
else
|
||||||
|
printf("... client would write block\n");
|
||||||
|
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
currTimeout = CyaSSL_dtls_get_current_timeout(ssl);
|
||||||
|
#endif
|
||||||
|
select_ret = tcp_select(sockfd, currTimeout);
|
||||||
|
|
||||||
|
if ((select_ret == TEST_RECV_READY) ||
|
||||||
|
(select_ret == TEST_ERROR_READY)) {
|
||||||
|
#ifndef CYASSL_CALLBACKS
|
||||||
|
ret = CyaSSL_connect(ssl);
|
||||||
|
#else
|
||||||
|
ret = CyaSSL_connect_ex(ssl,handShakeCB,timeoutCB,timeout);
|
||||||
|
#endif
|
||||||
|
error = CyaSSL_get_error(ssl, 0);
|
||||||
|
}
|
||||||
|
else if (select_ret == TEST_TIMEOUT && !CyaSSL_dtls(ssl)) {
|
||||||
|
error = SSL_ERROR_WANT_READ;
|
||||||
|
}
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
else if (select_ret == TEST_TIMEOUT && CyaSSL_dtls(ssl) &&
|
||||||
|
CyaSSL_dtls_got_timeout(ssl) >= 0) {
|
||||||
|
error = SSL_ERROR_WANT_READ;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
else {
|
||||||
|
error = SSL_FATAL_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ret != SSL_SUCCESS)
|
||||||
|
err_sys("SSL_connect failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void Usage(void)
|
||||||
|
{
|
||||||
|
printf("client " LIBCYASSL_VERSION_STRING
|
||||||
|
" NOTE: All files relative to CyaSSL home dir\n");
|
||||||
|
printf("-? Help, print this usage\n");
|
||||||
|
printf("-h <host> Host to connect to, default %s\n", yasslIP);
|
||||||
|
printf("-p <num> Port to connect on, not 0, default %d\n", yasslPort);
|
||||||
|
printf("-v <num> SSL version [0-3], SSLv3(0) - TLS1.2(3)), default %d\n",
|
||||||
|
CLIENT_DEFAULT_VERSION);
|
||||||
|
printf("-l <str> Cipher list\n");
|
||||||
|
printf("-c <file> Certificate file, default %s\n", cliCert);
|
||||||
|
printf("-k <file> Key file, default %s\n", cliKey);
|
||||||
|
printf("-A <file> Certificate Authority file, default %s\n", caCert);
|
||||||
|
printf("-b <num> Benchmark <num> connections and print stats\n");
|
||||||
|
printf("-s Use pre Shared keys\n");
|
||||||
|
printf("-t Track CyaSSL memory use\n");
|
||||||
|
printf("-d Disable peer checks\n");
|
||||||
|
printf("-g Send server HTTP GET\n");
|
||||||
|
printf("-u Use UDP DTLS,"
|
||||||
|
" add -v 2 for DTLSv1 (default), -v 3 for DTLSv1.2\n");
|
||||||
|
printf("-m Match domain name in cert\n");
|
||||||
|
printf("-N Use Non-blocking sockets\n");
|
||||||
|
printf("-r Resume session\n");
|
||||||
|
printf("-f Fewer packets/group messages\n");
|
||||||
|
printf("-x Disable client cert/key loading\n");
|
||||||
|
#ifdef SHOW_SIZES
|
||||||
|
printf("-z Print structure sizes\n");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SNI
|
||||||
|
printf("-S <str> Use Host Name Indication\n");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_MAX_FRAGMENT
|
||||||
|
printf("-L <num> Use Maximum Fragment Length [1-5]\n");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_TRUNCATED_HMAC
|
||||||
|
printf("-T Use Truncated HMAC\n");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
printf("-o Perform OCSP lookup on peer certificate\n");
|
||||||
|
printf("-O <url> Perform OCSP lookup using <url> as responder\n");
|
||||||
|
#endif
|
||||||
|
#ifdef ATOMIC_USER
|
||||||
|
printf("-U Atomic User Record Layer Callbacks\n");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|
printf("-P Public Key Callbacks\n");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
THREAD_RETURN CYASSL_THREAD client_test(void* args)
|
||||||
|
{
|
||||||
|
SOCKET_T sockfd = 0;
|
||||||
|
|
||||||
|
CYASSL_METHOD* method = 0;
|
||||||
|
CYASSL_CTX* ctx = 0;
|
||||||
|
CYASSL* ssl = 0;
|
||||||
|
|
||||||
|
CYASSL* sslResume = 0;
|
||||||
|
CYASSL_SESSION* session = 0;
|
||||||
|
char resumeMsg[] = "resuming cyassl!";
|
||||||
|
int resumeSz = sizeof(resumeMsg);
|
||||||
|
|
||||||
|
char msg[32] = "hello cyassl!"; /* GET may make bigger */
|
||||||
|
char reply[80];
|
||||||
|
int input;
|
||||||
|
int msgSz = (int)strlen(msg);
|
||||||
|
|
||||||
|
word16 port = yasslPort;
|
||||||
|
char* host = (char*)yasslIP;
|
||||||
|
char* domain = (char*)"www.yassl.com";
|
||||||
|
|
||||||
|
int ch;
|
||||||
|
int version = CLIENT_INVALID_VERSION;
|
||||||
|
int usePsk = 0;
|
||||||
|
int sendGET = 0;
|
||||||
|
int benchmark = 0;
|
||||||
|
int doDTLS = 0;
|
||||||
|
int matchName = 0;
|
||||||
|
int doPeerCheck = 1;
|
||||||
|
int nonBlocking = 0;
|
||||||
|
int resumeSession = 0;
|
||||||
|
int trackMemory = 0;
|
||||||
|
int useClientCert = 1;
|
||||||
|
int fewerPackets = 0;
|
||||||
|
int atomicUser = 0;
|
||||||
|
int pkCallbacks = 0;
|
||||||
|
char* cipherList = NULL;
|
||||||
|
char* verifyCert = (char*)caCert;
|
||||||
|
char* ourCert = (char*)cliCert;
|
||||||
|
char* ourKey = (char*)cliKey;
|
||||||
|
|
||||||
|
#ifdef HAVE_SNI
|
||||||
|
char* sniHostName = NULL;
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_MAX_FRAGMENT
|
||||||
|
byte maxFragment = 0;
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_TRUNCATED_HMAC
|
||||||
|
byte truncatedHMAC = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
int useOcsp = 0;
|
||||||
|
char* ocspUrl = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int argc = ((func_args*)args)->argc;
|
||||||
|
char** argv = ((func_args*)args)->argv;
|
||||||
|
|
||||||
|
((func_args*)args)->return_code = -1; /* error state */
|
||||||
|
|
||||||
|
#ifdef NO_RSA
|
||||||
|
verifyCert = (char*)eccCert;
|
||||||
|
ourCert = (char*)cliEccCert;
|
||||||
|
ourKey = (char*)cliEccKey;
|
||||||
|
#endif
|
||||||
|
(void)resumeSz;
|
||||||
|
(void)session;
|
||||||
|
(void)sslResume;
|
||||||
|
(void)trackMemory;
|
||||||
|
(void)atomicUser;
|
||||||
|
(void)pkCallbacks;
|
||||||
|
|
||||||
|
StackTrap();
|
||||||
|
|
||||||
|
while ((ch = mygetopt(argc, argv,
|
||||||
|
"?gdusmNrtfxUPh:p:v:l:A:c:k:b:zS:L:ToO:")) != -1) {
|
||||||
|
switch (ch) {
|
||||||
|
case '?' :
|
||||||
|
Usage();
|
||||||
|
exit(EXIT_SUCCESS);
|
||||||
|
|
||||||
|
case 'g' :
|
||||||
|
sendGET = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'd' :
|
||||||
|
doPeerCheck = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'u' :
|
||||||
|
doDTLS = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 's' :
|
||||||
|
usePsk = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 't' :
|
||||||
|
#ifdef USE_CYASSL_MEMORY
|
||||||
|
trackMemory = 1;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'm' :
|
||||||
|
matchName = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'x' :
|
||||||
|
useClientCert = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'f' :
|
||||||
|
fewerPackets = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'U' :
|
||||||
|
#ifdef ATOMIC_USER
|
||||||
|
atomicUser = 1;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'P' :
|
||||||
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|
pkCallbacks = 1;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'h' :
|
||||||
|
host = myoptarg;
|
||||||
|
domain = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'p' :
|
||||||
|
port = (word16)atoi(myoptarg);
|
||||||
|
#if !defined(NO_MAIN_DRIVER) || defined(USE_WINDOWS_API)
|
||||||
|
if (port == 0)
|
||||||
|
err_sys("port number cannot be 0");
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'v' :
|
||||||
|
version = atoi(myoptarg);
|
||||||
|
if (version < 0 || version > 3) {
|
||||||
|
Usage();
|
||||||
|
exit(MY_EX_USAGE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'l' :
|
||||||
|
cipherList = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'A' :
|
||||||
|
verifyCert = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'c' :
|
||||||
|
ourCert = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'k' :
|
||||||
|
ourKey = myoptarg;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'b' :
|
||||||
|
benchmark = atoi(myoptarg);
|
||||||
|
if (benchmark < 0 || benchmark > 1000000) {
|
||||||
|
Usage();
|
||||||
|
exit(MY_EX_USAGE);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'N' :
|
||||||
|
nonBlocking = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'r' :
|
||||||
|
resumeSession = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'z' :
|
||||||
|
#ifndef CYASSL_LEANPSK
|
||||||
|
CyaSSL_GetObjectSize();
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'S' :
|
||||||
|
#ifdef HAVE_SNI
|
||||||
|
sniHostName = myoptarg;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'L' :
|
||||||
|
#ifdef HAVE_MAX_FRAGMENT
|
||||||
|
maxFragment = atoi(myoptarg);
|
||||||
|
if (maxFragment < CYASSL_MFL_2_9 ||
|
||||||
|
maxFragment > CYASSL_MFL_2_13) {
|
||||||
|
Usage();
|
||||||
|
exit(MY_EX_USAGE);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'T' :
|
||||||
|
#ifdef HAVE_TRUNCATED_HMAC
|
||||||
|
truncatedHMAC = 1;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'o' :
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
useOcsp = 1;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'O' :
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
useOcsp = 1;
|
||||||
|
ocspUrl = myoptarg;
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
Usage();
|
||||||
|
exit(MY_EX_USAGE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
myoptind = 0; /* reset for test cases */
|
||||||
|
|
||||||
|
/* sort out DTLS versus TLS versions */
|
||||||
|
if (version == CLIENT_INVALID_VERSION) {
|
||||||
|
if (doDTLS)
|
||||||
|
version = CLIENT_DTLS_DEFAULT_VERSION;
|
||||||
|
else
|
||||||
|
version = CLIENT_DEFAULT_VERSION;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (doDTLS) {
|
||||||
|
if (version == 3)
|
||||||
|
version = -2;
|
||||||
|
else
|
||||||
|
version = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef USE_CYASSL_MEMORY
|
||||||
|
if (trackMemory)
|
||||||
|
InitMemoryTracker();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
switch (version) {
|
||||||
|
#ifndef NO_OLD_TLS
|
||||||
|
case 0:
|
||||||
|
method = CyaSSLv3_client_method();
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef NO_TLS
|
||||||
|
case 1:
|
||||||
|
method = CyaTLSv1_client_method();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
method = CyaTLSv1_1_client_method();
|
||||||
|
break;
|
||||||
|
#endif /* NO_TLS */
|
||||||
|
|
||||||
|
#endif /* NO_OLD_TLS */
|
||||||
|
|
||||||
|
#ifndef NO_TLS
|
||||||
|
case 3:
|
||||||
|
method = CyaTLSv1_2_client_method();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_DTLS
|
||||||
|
case -1:
|
||||||
|
method = CyaDTLSv1_client_method();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case -2:
|
||||||
|
method = CyaDTLSv1_2_client_method();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
default:
|
||||||
|
err_sys("Bad SSL version");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (method == NULL)
|
||||||
|
err_sys("unable to get method");
|
||||||
|
|
||||||
|
ctx = CyaSSL_CTX_new(method);
|
||||||
|
if (ctx == NULL)
|
||||||
|
err_sys("unable to get ctx");
|
||||||
|
|
||||||
|
if (cipherList)
|
||||||
|
if (CyaSSL_CTX_set_cipher_list(ctx, cipherList) != SSL_SUCCESS)
|
||||||
|
err_sys("client can't set cipher list 1");
|
||||||
|
|
||||||
|
#ifdef CYASSL_LEANPSK
|
||||||
|
usePsk = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(NO_RSA) && !defined(HAVE_ECC)
|
||||||
|
usePsk = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (fewerPackets)
|
||||||
|
CyaSSL_CTX_set_group_messages(ctx);
|
||||||
|
|
||||||
|
if (usePsk) {
|
||||||
|
#ifndef NO_PSK
|
||||||
|
CyaSSL_CTX_set_psk_client_callback(ctx, my_psk_client_cb);
|
||||||
|
if (cipherList == NULL) {
|
||||||
|
const char *defaultCipherList;
|
||||||
|
#ifdef HAVE_NULL_CIPHER
|
||||||
|
defaultCipherList = "PSK-NULL-SHA256";
|
||||||
|
#else
|
||||||
|
defaultCipherList = "PSK-AES128-CBC-SHA256";
|
||||||
|
#endif
|
||||||
|
if (CyaSSL_CTX_set_cipher_list(ctx,defaultCipherList) !=SSL_SUCCESS)
|
||||||
|
err_sys("client can't set cipher list 2");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
useClientCert = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) || defined(HAVE_WEBSERVER)
|
||||||
|
CyaSSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CYASSL_SNIFFER) && !defined(HAVE_NTRU) && !defined(HAVE_ECC)
|
||||||
|
if (cipherList == NULL) {
|
||||||
|
/* don't use EDH, can't sniff tmp keys */
|
||||||
|
if (CyaSSL_CTX_set_cipher_list(ctx, "AES256-SHA256") != SSL_SUCCESS) {
|
||||||
|
err_sys("client can't set cipher list 3");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_OCSP
|
||||||
|
if (useOcsp) {
|
||||||
|
if (ocspUrl != NULL) {
|
||||||
|
CyaSSL_CTX_SetOCSP_OverrideURL(ctx, ocspUrl);
|
||||||
|
CyaSSL_CTX_EnableOCSP(ctx, CYASSL_OCSP_NO_NONCE
|
||||||
|
| CYASSL_OCSP_URL_OVERRIDE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
CyaSSL_CTX_EnableOCSP(ctx, CYASSL_OCSP_NO_NONCE);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef USER_CA_CB
|
||||||
|
CyaSSL_CTX_SetCACb(ctx, CaCb);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef VERIFY_CALLBACK
|
||||||
|
CyaSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, myVerify);
|
||||||
|
#endif
|
||||||
|
#if !defined(NO_FILESYSTEM) && !defined(NO_CERTS)
|
||||||
|
if (useClientCert){
|
||||||
|
if (CyaSSL_CTX_use_certificate_chain_file(ctx, ourCert) != SSL_SUCCESS)
|
||||||
|
err_sys("can't load client cert file, check file and run from"
|
||||||
|
" CyaSSL home dir");
|
||||||
|
|
||||||
|
if (CyaSSL_CTX_use_PrivateKey_file(ctx, ourKey, SSL_FILETYPE_PEM)
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("can't load client private key file, check file and run "
|
||||||
|
"from CyaSSL home dir");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!usePsk) {
|
||||||
|
if (CyaSSL_CTX_load_verify_locations(ctx, verifyCert, 0) != SSL_SUCCESS)
|
||||||
|
err_sys("can't load ca file, Please run from CyaSSL home dir");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if !defined(NO_CERTS)
|
||||||
|
if (!usePsk && doPeerCheck == 0)
|
||||||
|
CyaSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
CyaSSL_CTX_UseCavium(ctx, CAVIUM_DEV_ID);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SNI
|
||||||
|
if (sniHostName)
|
||||||
|
if (CyaSSL_CTX_UseSNI(ctx, 0, sniHostName, XSTRLEN(sniHostName))
|
||||||
|
!= SSL_SUCCESS)
|
||||||
|
err_sys("UseSNI failed");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_MAX_FRAGMENT
|
||||||
|
if (maxFragment)
|
||||||
|
if (CyaSSL_CTX_UseMaxFragment(ctx, maxFragment) != SSL_SUCCESS)
|
||||||
|
err_sys("UseMaxFragment failed");
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_TRUNCATED_HMAC
|
||||||
|
if (truncatedHMAC)
|
||||||
|
if (CyaSSL_CTX_UseTruncatedHMAC(ctx) != SSL_SUCCESS)
|
||||||
|
err_sys("UseTruncatedHMAC failed");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (benchmark) {
|
||||||
|
/* time passed in number of connects give average */
|
||||||
|
int times = benchmark;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
double start = current_time(), avg;
|
||||||
|
|
||||||
|
for (i = 0; i < times; i++) {
|
||||||
|
tcp_connect(&sockfd, host, port, doDTLS);
|
||||||
|
|
||||||
|
ssl = CyaSSL_new(ctx);
|
||||||
|
CyaSSL_set_fd(ssl, sockfd);
|
||||||
|
if (CyaSSL_connect(ssl) != SSL_SUCCESS)
|
||||||
|
err_sys("SSL_connect failed");
|
||||||
|
|
||||||
|
CyaSSL_shutdown(ssl);
|
||||||
|
CyaSSL_free(ssl);
|
||||||
|
CloseSocket(sockfd);
|
||||||
|
}
|
||||||
|
avg = current_time() - start;
|
||||||
|
avg /= times;
|
||||||
|
avg *= 1000; /* milliseconds */
|
||||||
|
printf("CyaSSL_connect avg took: %8.3f milliseconds\n", avg);
|
||||||
|
|
||||||
|
CyaSSL_CTX_free(ctx);
|
||||||
|
((func_args*)args)->return_code = 0;
|
||||||
|
|
||||||
|
exit(EXIT_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(CYASSL_MDK_ARM)
|
||||||
|
CyaSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ssl = CyaSSL_new(ctx);
|
||||||
|
if (ssl == NULL)
|
||||||
|
err_sys("unable to get SSL object");
|
||||||
|
if (doDTLS) {
|
||||||
|
SOCKADDR_IN_T addr;
|
||||||
|
build_addr(&addr, host, port, 1);
|
||||||
|
CyaSSL_dtls_set_peer(ssl, &addr, sizeof(addr));
|
||||||
|
tcp_socket(&sockfd, 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tcp_connect(&sockfd, host, port, 0);
|
||||||
|
}
|
||||||
|
CyaSSL_set_fd(ssl, sockfd);
|
||||||
|
#ifdef HAVE_CRL
|
||||||
|
if (CyaSSL_EnableCRL(ssl, CYASSL_CRL_CHECKALL) != SSL_SUCCESS)
|
||||||
|
err_sys("can't enable crl check");
|
||||||
|
if (CyaSSL_LoadCRL(ssl, crlPemDir, SSL_FILETYPE_PEM, 0) != SSL_SUCCESS)
|
||||||
|
err_sys("can't load crl, check crlfile and date validity");
|
||||||
|
if (CyaSSL_SetCRL_Cb(ssl, CRL_CallBack) != SSL_SUCCESS)
|
||||||
|
err_sys("can't set crl callback");
|
||||||
|
#endif
|
||||||
|
#ifdef ATOMIC_USER
|
||||||
|
if (atomicUser)
|
||||||
|
SetupAtomicUser(ctx, ssl);
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|
if (pkCallbacks)
|
||||||
|
SetupPkCallbacks(ctx, ssl);
|
||||||
|
#endif
|
||||||
|
if (matchName && doPeerCheck)
|
||||||
|
CyaSSL_check_domain_name(ssl, domain);
|
||||||
|
#ifndef CYASSL_CALLBACKS
|
||||||
|
if (nonBlocking) {
|
||||||
|
CyaSSL_set_using_nonblock(ssl, 1);
|
||||||
|
tcp_set_nonblocking(&sockfd);
|
||||||
|
NonBlockingSSL_Connect(ssl);
|
||||||
|
}
|
||||||
|
else if (CyaSSL_connect(ssl) != SSL_SUCCESS) {
|
||||||
|
/* see note at top of README */
|
||||||
|
int err = CyaSSL_get_error(ssl, 0);
|
||||||
|
char buffer[CYASSL_MAX_ERROR_SZ];
|
||||||
|
printf("err = %d, %s\n", err,
|
||||||
|
CyaSSL_ERR_error_string(err, buffer));
|
||||||
|
err_sys("SSL_connect failed");
|
||||||
|
/* if you're getting an error here */
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
timeout.tv_sec = 2;
|
||||||
|
timeout.tv_usec = 0;
|
||||||
|
NonBlockingSSL_Connect(ssl); /* will keep retrying on timeout */
|
||||||
|
#endif
|
||||||
|
showPeer(ssl);
|
||||||
|
|
||||||
|
if (sendGET) {
|
||||||
|
printf("SSL connect ok, sending GET...\n");
|
||||||
|
msgSz = 28;
|
||||||
|
strncpy(msg, "GET /index.html HTTP/1.0\r\n\r\n", msgSz);
|
||||||
|
msg[msgSz] = '\0';
|
||||||
|
}
|
||||||
|
if (CyaSSL_write(ssl, msg, msgSz) != msgSz)
|
||||||
|
err_sys("SSL_write failed");
|
||||||
|
|
||||||
|
input = CyaSSL_read(ssl, reply, sizeof(reply)-1);
|
||||||
|
if (input > 0) {
|
||||||
|
reply[input] = 0;
|
||||||
|
printf("Server response: %s\n", reply);
|
||||||
|
|
||||||
|
if (sendGET) { /* get html */
|
||||||
|
while (1) {
|
||||||
|
input = CyaSSL_read(ssl, reply, sizeof(reply)-1);
|
||||||
|
if (input > 0) {
|
||||||
|
reply[input] = 0;
|
||||||
|
printf("%s\n", reply);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (input < 0) {
|
||||||
|
int readErr = CyaSSL_get_error(ssl, 0);
|
||||||
|
if (readErr != SSL_ERROR_WANT_READ)
|
||||||
|
err_sys("CyaSSL_read failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef NO_SESSION_CACHE
|
||||||
|
if (resumeSession) {
|
||||||
|
if (doDTLS) {
|
||||||
|
strncpy(msg, "break", 6);
|
||||||
|
msgSz = (int)strlen(msg);
|
||||||
|
/* try to send session close */
|
||||||
|
CyaSSL_write(ssl, msg, msgSz);
|
||||||
|
}
|
||||||
|
session = CyaSSL_get_session(ssl);
|
||||||
|
sslResume = CyaSSL_new(ctx);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (doDTLS == 0) /* don't send alert after "break" command */
|
||||||
|
CyaSSL_shutdown(ssl); /* echoserver will interpret as new conn */
|
||||||
|
#ifdef ATOMIC_USER
|
||||||
|
if (atomicUser)
|
||||||
|
FreeAtomicUser(ssl);
|
||||||
|
#endif
|
||||||
|
CyaSSL_free(ssl);
|
||||||
|
CloseSocket(sockfd);
|
||||||
|
|
||||||
|
#ifndef NO_SESSION_CACHE
|
||||||
|
if (resumeSession) {
|
||||||
|
if (doDTLS) {
|
||||||
|
SOCKADDR_IN_T addr;
|
||||||
|
#ifdef USE_WINDOWS_API
|
||||||
|
Sleep(500);
|
||||||
|
#else
|
||||||
|
sleep(1);
|
||||||
|
#endif
|
||||||
|
build_addr(&addr, host, port, 1);
|
||||||
|
CyaSSL_dtls_set_peer(sslResume, &addr, sizeof(addr));
|
||||||
|
tcp_socket(&sockfd, 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tcp_connect(&sockfd, host, port, 0);
|
||||||
|
}
|
||||||
|
CyaSSL_set_fd(sslResume, sockfd);
|
||||||
|
CyaSSL_set_session(sslResume, session);
|
||||||
|
|
||||||
|
showPeer(sslResume);
|
||||||
|
#ifndef CYASSL_CALLBACKS
|
||||||
|
if (nonBlocking) {
|
||||||
|
CyaSSL_set_using_nonblock(sslResume, 1);
|
||||||
|
tcp_set_nonblocking(&sockfd);
|
||||||
|
NonBlockingSSL_Connect(sslResume);
|
||||||
|
}
|
||||||
|
else if (CyaSSL_connect(sslResume) != SSL_SUCCESS)
|
||||||
|
err_sys("SSL resume failed");
|
||||||
|
#else
|
||||||
|
timeout.tv_sec = 2;
|
||||||
|
timeout.tv_usec = 0;
|
||||||
|
NonBlockingSSL_Connect(ssl); /* will keep retrying on timeout */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (CyaSSL_session_reused(sslResume))
|
||||||
|
printf("reused session id\n");
|
||||||
|
else
|
||||||
|
printf("didn't reuse session id!!!\n");
|
||||||
|
|
||||||
|
if (CyaSSL_write(sslResume, resumeMsg, resumeSz) != resumeSz)
|
||||||
|
err_sys("SSL_write failed");
|
||||||
|
|
||||||
|
if (nonBlocking) {
|
||||||
|
/* give server a chance to bounce a message back to client */
|
||||||
|
#ifdef USE_WINDOWS_API
|
||||||
|
Sleep(500);
|
||||||
|
#else
|
||||||
|
sleep(1);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
input = CyaSSL_read(sslResume, reply, sizeof(reply)-1);
|
||||||
|
if (input > 0) {
|
||||||
|
reply[input] = 0;
|
||||||
|
printf("Server resume response: %s\n", reply);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* try to send session break */
|
||||||
|
CyaSSL_write(sslResume, msg, msgSz);
|
||||||
|
|
||||||
|
CyaSSL_shutdown(sslResume);
|
||||||
|
CyaSSL_free(sslResume);
|
||||||
|
CloseSocket(sockfd);
|
||||||
|
}
|
||||||
|
#endif /* NO_SESSION_CACHE */
|
||||||
|
|
||||||
|
CyaSSL_CTX_free(ctx);
|
||||||
|
|
||||||
|
((func_args*)args)->return_code = 0;
|
||||||
|
|
||||||
|
#ifdef USE_CYASSL_MEMORY
|
||||||
|
if (trackMemory)
|
||||||
|
ShowMemoryTracker();
|
||||||
|
#endif /* USE_CYASSL_MEMORY */
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* so overall tests can pull in test function */
|
||||||
|
#ifndef NO_MAIN_DRIVER
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
func_args args;
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
int ret = OpenNitroxDevice(CAVIUM_DIRECT, CAVIUM_DEV_ID);
|
||||||
|
if (ret != 0)
|
||||||
|
err_sys("Cavium OpenNitroxDevice failed");
|
||||||
|
#endif /* HAVE_CAVIUM */
|
||||||
|
|
||||||
|
StartTCP();
|
||||||
|
|
||||||
|
args.argc = argc;
|
||||||
|
args.argv = argv;
|
||||||
|
|
||||||
|
CyaSSL_Init();
|
||||||
|
#if defined(DEBUG_CYASSL) && !defined(CYASSL_MDK_SHELL) && !defined(STACK_TRAP)
|
||||||
|
CyaSSL_Debugging_ON();
|
||||||
|
#endif
|
||||||
|
if (CurrentDir("client"))
|
||||||
|
ChangeDirBack(2);
|
||||||
|
else if (CurrentDir("Debug") || CurrentDir("Release"))
|
||||||
|
ChangeDirBack(3);
|
||||||
|
|
||||||
|
#ifdef HAVE_STACK_SIZE
|
||||||
|
StackSizeCheck(&args, client_test);
|
||||||
|
#else
|
||||||
|
client_test(&args);
|
||||||
|
#endif
|
||||||
|
CyaSSL_Cleanup();
|
||||||
|
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
CspShutdown(CAVIUM_DEV_ID);
|
||||||
|
#endif
|
||||||
|
return args.return_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
int myoptind = 0;
|
||||||
|
char* myoptarg = NULL;
|
||||||
|
|
||||||
|
#endif /* NO_MAIN_DRIVER */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_CALLBACKS
|
||||||
|
|
||||||
|
int handShakeCB(HandShakeInfo* info)
|
||||||
|
{
|
||||||
|
(void)info;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int timeoutCB(TimeoutInfo* info)
|
||||||
|
{
|
||||||
|
(void)info;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
/* config-RTX-TCP-FS.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**** CyaSSL for KEIL-RL Configuration ****/
|
||||||
|
|
||||||
|
#define __CORTEX_M3__
|
||||||
|
#define CYASSL_MDK_ARM
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_MAIN_DRIVER
|
||||||
|
|
||||||
|
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#define HAVE_NULL_CIPHER
|
||||||
|
|
||||||
|
#define HAVE_KEIL_RTX
|
||||||
|
#define CYASSL_CMSIS_RTOS
|
||||||
|
#define CYASSL_KEIL_TCP_NET
|
||||||
|
|
||||||
|
|
||||||
|
// <<< Use Configuration Wizard in Context Menu >>>
|
||||||
|
// <h> Build Target: Simple Client
|
||||||
|
// <s.15>Callee IP Address
|
||||||
|
// <i> Default: "192.168.1.100"
|
||||||
|
#define CYASSL_CALLEE_IP "192.168.11.3"
|
||||||
|
// <s.15>Callee Port Number
|
||||||
|
// <i> Default: "443"
|
||||||
|
#define CYASSL_CALLEE_PORT "443"
|
||||||
|
// <o>HTTP GET Option <0=> HTTP Get <1=> SSL/TLS Message
|
||||||
|
#define MDK_CONF_HTTP_GET 0
|
||||||
|
#if MDK_CONF_HTTP_GET == 0
|
||||||
|
#define CYASSL_HTTP_GET "-g"
|
||||||
|
#define CYASSL_HTTP_GET_COUNT 1
|
||||||
|
#elif MDK_CONF_HTTP_GET == 1
|
||||||
|
#define CYASSL_HTTP_GET ""
|
||||||
|
#define CYASSL_HTTP_GET_COUNT 0
|
||||||
|
#endif
|
||||||
|
// <o>SSL/TLS Version <0=> SSL3 <1=> TLS 1.0 <2=> TLS 1.1 <3=> TLS 1.2
|
||||||
|
#define MDK_CONF_SSL_VERSION 3
|
||||||
|
#if MDK_CONF_SSL_VERSION == 0
|
||||||
|
#define CYASSL_SSL_VER "0"
|
||||||
|
#elif MDK_CONF_SSL_VERSION == 1
|
||||||
|
#define CYASSL_SSL_VER "1"
|
||||||
|
#elif MDK_CONF_SSL_VERSION == 2
|
||||||
|
#define CYASSL_SSL_VER "2"
|
||||||
|
#elif MDK_CONF_SSL_VERSION == 3
|
||||||
|
#define CYASSL_SSL_VER "3"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// </h>
|
||||||
|
// <<< end of configuration section >>>
|
|
@ -0,0 +1,113 @@
|
||||||
|
/* main.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
#include <cyassl/ctaocrypt/logging.h>
|
||||||
|
|
||||||
|
#include "cmsis_os.h"
|
||||||
|
#include "rl_fs.h"
|
||||||
|
#include "rl_net.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "cyassl_MDK_ARM.h"
|
||||||
|
#include <cyassl/ssl.h>
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* Initialize a Flash Memory Card
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
static void init_filesystem (void) {
|
||||||
|
int32_t retv;
|
||||||
|
|
||||||
|
retv = finit ("M0:");
|
||||||
|
if (retv == 0) {
|
||||||
|
retv = fmount ("M0:");
|
||||||
|
if (retv == 0) {
|
||||||
|
printf ("Drive M0 ready!\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf ("Drive M0 mount failed!\n");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
printf ("Drive M0 initialization failed!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* TCP/IP tasks
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
void tcp_poll (void const *arg)
|
||||||
|
{
|
||||||
|
CYASSL_MSG("TCP polling started.\n") ;
|
||||||
|
while (1) {
|
||||||
|
net_main ();
|
||||||
|
osDelay(100) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef struct func_args {
|
||||||
|
int argc;
|
||||||
|
char** argv;
|
||||||
|
} func_args;
|
||||||
|
|
||||||
|
extern void client_test(func_args * args) ;
|
||||||
|
|
||||||
|
osThreadDef (tcp_poll, osPriorityHigh , 1, 0) ;
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* mian entry
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
int myoptind = 0;
|
||||||
|
char* myoptarg = NULL;
|
||||||
|
|
||||||
|
#include "config-SimpleClient.h"
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
static char *argv[] =
|
||||||
|
{ "client", "-h", CYASSL_CALLEE_IP, "-p", CYASSL_CALLEE_PORT,
|
||||||
|
"-v", CYASSL_SSL_VER, CYASSL_HTTP_GET } ;
|
||||||
|
static func_args args =
|
||||||
|
{ 7 + CYASSL_HTTP_GET_COUNT, argv } ;
|
||||||
|
|
||||||
|
init_filesystem ();
|
||||||
|
net_initialize() ;
|
||||||
|
osThreadCreate (osThread (tcp_poll), NULL);
|
||||||
|
osDelay(50000) ; /* wait for DHCP */
|
||||||
|
#if defined(DEBUG_CYASSL)
|
||||||
|
printf("Turning ON Debug message\n") ;
|
||||||
|
CyaSSL_Debugging_ON() ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if(args.argc == 7)
|
||||||
|
printf("Simple SSL/TLS, ") ;
|
||||||
|
else
|
||||||
|
printf("HTTP GET, ") ;
|
||||||
|
|
||||||
|
printf("Callee IP: %s, Port: %s, Version:%s\n", argv[2], argv[4], argv[6]) ;
|
||||||
|
|
||||||
|
while(1) {
|
||||||
|
client_test(&args) ;
|
||||||
|
printf("Enter any key to iterate.\n") ;
|
||||||
|
getchar() ;
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,41 @@
|
||||||
|
/* time-STM32F2.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#define DWT ((DWT_Type *) (0xE0001000UL) )
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */
|
||||||
|
uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */
|
||||||
|
} DWT_Type;
|
||||||
|
|
||||||
|
extern uint32_t SystemCoreClock ;
|
||||||
|
|
||||||
|
double current_time(int reset)
|
||||||
|
{
|
||||||
|
if(reset) DWT->CYCCNT = 0 ;
|
||||||
|
return ((double)DWT->CYCCNT/SystemCoreClock) ;
|
||||||
|
}
|
|
@ -0,0 +1,82 @@
|
||||||
|
/* time-STM32F2.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "time.h"
|
||||||
|
|
||||||
|
#define PERIPH_BASE ((uint32_t)0x40000000)
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* initialize RTC
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
#include "stm32f2xx.h"
|
||||||
|
|
||||||
|
#define assert_param(a)
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
#define RTC_RSF_MASK ((uint32_t)0xFFFFFF5F)
|
||||||
|
#define SYNCHRO_TIMEOUT ((uint32_t) 0x00008000)
|
||||||
|
#define Bcd2ToByte(v) \
|
||||||
|
((((uint8_t)(v & (uint8_t)0xF0) >> (uint8_t)0x4) * 10) + (v & (uint8_t)0x0F))
|
||||||
|
#define RTC_TR_RESERVED_MASK ((uint32_t)0x007F7F7F)
|
||||||
|
#define RTC_TR_MNT ((uint32_t)0x00007000)
|
||||||
|
#define RTC_TR_MNU ((uint32_t)0x00000F00)
|
||||||
|
|
||||||
|
#define PWR_OFFSET (PWR_BASE - PERIPH_BASE)
|
||||||
|
#define CR_OFFSET (PWR_OFFSET + 0x00)
|
||||||
|
#define DBP_BitNumber 0x08
|
||||||
|
#define CR_DBP_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (DBP_BitNumber * 4))
|
||||||
|
#define RTC_INIT_MASK ((uint32_t)0xFFFFFFFF)
|
||||||
|
#define INITMODE_TIMEOUT ((uint32_t) 0x00010000)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------
|
||||||
|
* initialize TIM
|
||||||
|
*----------------------------------------------------------------------------*/
|
||||||
|
#define RCC_APB1Periph_TIM2 ((uint32_t)0x00000001)
|
||||||
|
|
||||||
|
void init_time(void)
|
||||||
|
{
|
||||||
|
uint16_t tmpcr1 = 0;
|
||||||
|
|
||||||
|
((uint32_t *)RCC)[0x10] |= RCC_APB1Periph_TIM2 ;
|
||||||
|
|
||||||
|
tmpcr1 = TIM2->CR1 ;
|
||||||
|
tmpcr1 &= (uint16_t) (~(((uint16_t)0x0010) | ((uint16_t)0x0060) ));
|
||||||
|
/* CR1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS) */
|
||||||
|
tmpcr1 |= (uint16_t)0x0000 ; /* CR1 |= TIM_CounterMode_Up */
|
||||||
|
TIM2->CR1= tmpcr1 ;
|
||||||
|
|
||||||
|
TIM2->ARR = 0xffffffff ; /* ARR= TIM_Period */
|
||||||
|
TIM2->PSC = 60 ; /* PSC = TIM_Prescaler */
|
||||||
|
TIM2->EGR = ((uint16_t)0x0001) ; /* EGR = TIM_PSCReloadMode_Immediate */
|
||||||
|
|
||||||
|
*(uint16_t *)(PERIPH_BASE+0x0) |=((uint16_t)0x0001) ;
|
||||||
|
/* TIM_Cmd(TIM2, ENABLE) ; */
|
||||||
|
}
|
||||||
|
|
||||||
|
double current_time()
|
||||||
|
{
|
||||||
|
return ((double)TIM2->CNT/1000000.0) ;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
/* time-dummy.c.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2014 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "time.h"
|
||||||
|
|
||||||
|
struct tm *Cyassl_MDK_gmtime(const time_t *c)
|
||||||
|
{
|
||||||
|
static struct tm date ;
|
||||||
|
return(&date) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
time_t time(time_t * t) { return 0 ; }
|
|
@ -0,0 +1,24 @@
|
||||||
|
This program is a simple server example with CyaSSL/wolfCrypt library.
|
||||||
|
|
||||||
|
In order to run this program,
|
||||||
|
Copy {PACK}\wolfSSL\CyaSSL\{version}\cyassl\certs folder and files to the SD memory.
|
||||||
|
Set the server IP address in Net_Config_ETH_0.h
|
||||||
|
The default server listning port is 11111, defined in test.h
|
||||||
|
|
||||||
|
For further configuration, refer config-Crypt.h and config-CyaSSL.h.
|
||||||
|
config-SimpleServer.h is for configuring the server port number.
|
||||||
|
|
||||||
|
When testing this server, it is recommended to test against one of the standard
|
||||||
|
CyaSSL example applications running on a desktop machine. The standard CyaSSL
|
||||||
|
example applications are located in the CyaSSL root directory under the
|
||||||
|
<cyassl_root>/examples directory.
|
||||||
|
|
||||||
|
For the hardware crypt on config-Crypt.h, download
|
||||||
|
STSW-STM32062: STM32F2xx standard peripherals library at
|
||||||
|
http://www.st.com/. Copy Libraries\STM32F2xx_StdPeriph_Driver\{inc,src} to
|
||||||
|
{PACK}\cyassl\IDE\MDK5-ARM\STM32F2xx_StdPeriph_Lib
|
||||||
|
|
||||||
|
|
||||||
|
Support
|
||||||
|
-------
|
||||||
|
Please send questions or comments to support@wolfssl.com
|
|
@ -0,0 +1,627 @@
|
||||||
|
/* settings.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006-2013 wolfSSL Inc.
|
||||||
|
*
|
||||||
|
* This file is part of CyaSSL.
|
||||||
|
*
|
||||||
|
* CyaSSL is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* CyaSSL is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Place OS specific preprocessor flags, defines, includes here, will be
|
||||||
|
included into every file because types.h includes it */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef CTAO_CRYPT_SETTINGS_H
|
||||||
|
#define CTAO_CRYPT_SETTINGS_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Uncomment next line if using IPHONE */
|
||||||
|
/* #define IPHONE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using ThreadX */
|
||||||
|
/* #define THREADX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Micrium ucOS */
|
||||||
|
/* #define MICRIUM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Mbed */
|
||||||
|
/* #define MBED */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip PIC32 ethernet starter kit */
|
||||||
|
/* #define MICROCHIP_PIC32 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 5 */
|
||||||
|
/* #define MICROCHIP_TCPIP_V5 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Microchip TCP/IP stack, version 6 or later */
|
||||||
|
/* #define MICROCHIP_TCPIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS */
|
||||||
|
/* #define FREERTOS */
|
||||||
|
|
||||||
|
/* Uncomment next line if using FreeRTOS Windows Simulator */
|
||||||
|
/* #define FREERTOS_WINSIM */
|
||||||
|
|
||||||
|
/* Uncomment next line if using RTIP */
|
||||||
|
/* #define EBSNET */
|
||||||
|
|
||||||
|
/* Uncomment next line if using lwip */
|
||||||
|
/* #define CYASSL_LWIP */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for a game console */
|
||||||
|
/* #define CYASSL_GAME_BUILD */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for LSR */
|
||||||
|
/* #define CYASSL_LSR */
|
||||||
|
|
||||||
|
/* Uncomment next line if building CyaSSL for Freescale MQX/RTCS/MFS */
|
||||||
|
/* #define FREESCALE_MQX */
|
||||||
|
|
||||||
|
/* Uncomment next line if using STM32F2 */
|
||||||
|
/* #define CYASSL_STM32F2 */
|
||||||
|
|
||||||
|
/* Uncomment next line if using Comverge settings */
|
||||||
|
/* #define COMVERGE */
|
||||||
|
|
||||||
|
/* Uncomment next line if using QL SEP settings */
|
||||||
|
/* #define CYASSL_QL */
|
||||||
|
|
||||||
|
|
||||||
|
#include <cyassl/ctaocrypt/visibility.h>
|
||||||
|
|
||||||
|
#ifdef IPHONE
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef COMVERGE
|
||||||
|
#define THREADX
|
||||||
|
#define HAVE_NETX
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_SESSION_CACHE
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef THREADX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_NETX
|
||||||
|
#include "nx_api.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_PIC32
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP_V5
|
||||||
|
/* include timer functions */
|
||||||
|
#include "TCPIP Stack/TCPIP.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICROCHIP_TCPIP
|
||||||
|
/* include timer, NTP functions */
|
||||||
|
#include "system/system_services.h"
|
||||||
|
#ifdef MICROCHIP_MPLAB_HARMONY
|
||||||
|
#include "tcpip/tcpip.h"
|
||||||
|
#else
|
||||||
|
#include "tcpip/sntp.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MBED
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#endif /* MBED */
|
||||||
|
|
||||||
|
#ifdef CYASSL_TYTO
|
||||||
|
#include "rand.h"
|
||||||
|
#define FREERTOS
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define HAVE_ECC
|
||||||
|
#define HAVE_ECC_ENCRYPT
|
||||||
|
#define ECC_SHAMIR
|
||||||
|
#define HAVE_HKDF
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#define FP_MAX_BITS 512
|
||||||
|
#define NO_OLD_TLS
|
||||||
|
#define NO_MD4
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_RSA
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_PWDBASED
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREERTOS_WINSIM
|
||||||
|
#define FREERTOS
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Micrium will use Visual Studio for compilation but not the Win32 API */
|
||||||
|
#if defined(_WIN32) && !defined(MICRIUM) && !defined(FREERTOS) \
|
||||||
|
&& !defined(EBSNET)
|
||||||
|
#define USE_WINDOWS_API
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(CYASSL_LEANPSK) && !defined(XMALLOC_USER)
|
||||||
|
#include <stdlib.h>
|
||||||
|
#define XMALLOC(s, h, type) malloc((s))
|
||||||
|
#define XFREE(p, h, type) free((p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(XMALLOC_USER) && defined(SSN_BUILDING_LIBYASSL)
|
||||||
|
#undef XMALLOC
|
||||||
|
#define XMALLOC yaXMALLOC
|
||||||
|
#undef XFREE
|
||||||
|
#define XFREE yaXFREE
|
||||||
|
#undef XREALLOC
|
||||||
|
#define XREALLOC yaXREALLOC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FREERTOS
|
||||||
|
#ifndef NO_WRITEV
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
#ifndef NO_SHA512
|
||||||
|
#define NO_SHA512
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DH
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
#ifndef NO_DSA
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
#ifndef NO_HC128
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "semphr.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef EBSNET
|
||||||
|
#include "rtip.h"
|
||||||
|
|
||||||
|
/* #define DEBUG_CYASSL */
|
||||||
|
#define NO_CYASSL_DIR /* tbd */
|
||||||
|
|
||||||
|
#if (POLLOS)
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (RTPLATFORM)
|
||||||
|
#if (!RTP_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if (!KS_LITTLE_ENDIAN)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (WINMSP3)
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#else
|
||||||
|
#sslpro: settings.h - please implement SIZEOF_LONG and SIZEOF_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, type) ((void *)rtp_malloc((s), SSL_PRO_MALLOC))
|
||||||
|
#define XFREE(p, h, type) (rtp_free(p))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
|
||||||
|
#endif /* EBSNET */
|
||||||
|
|
||||||
|
#ifdef CYASSL_GAME_BUILD
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#if defined(__PPU) || defined(__XENON)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LSR
|
||||||
|
#define HAVE_WEBSERVER
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define CYASSL_LOW_MEMORY
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_SHA512
|
||||||
|
#define NO_DH
|
||||||
|
#define NO_DSA
|
||||||
|
#define NO_HC128
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#define LSR_FS
|
||||||
|
#include "inc/hw_types.h"
|
||||||
|
#include "fs.h"
|
||||||
|
#endif
|
||||||
|
#define CYASSL_LWIP
|
||||||
|
#include <errno.h> /* for tcp errno */
|
||||||
|
#define CYASSL_SAFERTOS
|
||||||
|
#if defined(__IAR_SYSTEMS_ICC__)
|
||||||
|
/* enum uses enum */
|
||||||
|
#pragma diag_suppress=Pa089
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_SAFERTOS
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "SafeRTOS/semphr.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "SafeRTOS/heap.h"
|
||||||
|
#define XMALLOC(s, h, type) pvPortMalloc((s))
|
||||||
|
#define XFREE(p, h, type) vPortFree((p))
|
||||||
|
#define XREALLOC(p, n, h, t) pvPortRealloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_LOW_MEMORY
|
||||||
|
#undef RSA_LOW_MEM
|
||||||
|
#define RSA_LOW_MEM
|
||||||
|
#undef CYASSL_SMALL_STACK
|
||||||
|
#define CYASSL_SMALL_STACK
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FREESCALE_MQX
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_WRITEV
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#define FREESCALE_K70_RNGA
|
||||||
|
/* #define FREESCALE_K53_RNGB */
|
||||||
|
#include "mqx.h"
|
||||||
|
#ifndef NO_FILESYSTEM
|
||||||
|
#include "mfs.h"
|
||||||
|
#include "fio.h"
|
||||||
|
#endif
|
||||||
|
#ifndef SINGLE_THREADED
|
||||||
|
#include "mutex.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define XMALLOC(s, h, t) (void *)_mem_alloc_system((s))
|
||||||
|
#define XFREE(p, h, t) {void* xp = (p); if ((xp)) _mem_free((xp));}
|
||||||
|
/* Note: MQX has no realloc, using fastmath above */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CYASSL_STM32F2
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#define NO_CYASSL_DIR
|
||||||
|
#define NO_RABBIT
|
||||||
|
#define STM32F2_RNG
|
||||||
|
#define STM32F2_CRYPTO
|
||||||
|
#define KEIL_INTRINSICS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MICRIUM
|
||||||
|
|
||||||
|
#include "stdlib.h"
|
||||||
|
#include "net_cfg.h"
|
||||||
|
#include "ssl_cfg.h"
|
||||||
|
#include "net_secure_os.h"
|
||||||
|
|
||||||
|
#define CYASSL_TYPES
|
||||||
|
|
||||||
|
typedef CPU_INT08U byte;
|
||||||
|
typedef CPU_INT16U word16;
|
||||||
|
typedef CPU_INT32U word32;
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_WORD_SIZE == CPU_WORD_SIZE_32)
|
||||||
|
#define SIZEOF_LONG 4
|
||||||
|
#undef SIZEOF_LONG_LONG
|
||||||
|
#else
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
#define SIZEOF_LONG_LONG 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define STRING_USER
|
||||||
|
|
||||||
|
#define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr)))
|
||||||
|
#define XSTRNCPY(pstr_dest, pstr_src, len_max) \
|
||||||
|
((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \
|
||||||
|
(CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRNCMP(pstr_1, pstr_2, len_max) \
|
||||||
|
((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \
|
||||||
|
(CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max)))
|
||||||
|
#define XSTRSTR(pstr, pstr_srch) \
|
||||||
|
((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \
|
||||||
|
(CPU_CHAR *)(pstr_srch)))
|
||||||
|
#define XMEMSET(pmem, data_val, size) \
|
||||||
|
((void)Mem_Set((void *)(pmem), (CPU_INT08U) (data_val), \
|
||||||
|
(CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \
|
||||||
|
(void *)(psrc), (CPU_SIZE_T)(size)))
|
||||||
|
#define XMEMCMP(pmem_1, pmem_2, size) \
|
||||||
|
(((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), (void *)(pmem_2), \
|
||||||
|
(CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES)
|
||||||
|
#define XMEMMOVE XMEMCPY
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
|
||||||
|
#define MICRIUM_MALLOC
|
||||||
|
#define XMALLOC(s, h, type) ((void *)NetSecure_BlkGet((CPU_INT08U)(type), \
|
||||||
|
(CPU_SIZE_T)(s), (void *)0))
|
||||||
|
#define XFREE(p, h, type) (NetSecure_BlkFree((CPU_INT08U)(type), \
|
||||||
|
(p), (void *)0))
|
||||||
|
#define XREALLOC(p, n, h, t) realloc((p), (n))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (NET_SECURE_MGR_CFG_FS_EN == DEF_ENABLED)
|
||||||
|
#undef NO_FILESYSTEM
|
||||||
|
#else
|
||||||
|
#define NO_FILESYSTEM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TRACE_LEVEL == CYASSL_TRACE_LEVEL_DBG)
|
||||||
|
#define DEBUG_CYASSL
|
||||||
|
#else
|
||||||
|
#undef DEBUG_CYASSL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_OPENSSL_EN == DEF_ENABLED)
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#else
|
||||||
|
#undef OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MULTI_THREAD_EN == DEF_ENABLED)
|
||||||
|
#undef SINGLE_THREADED
|
||||||
|
#else
|
||||||
|
#define SINGLE_THREADED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DH_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DH
|
||||||
|
#else
|
||||||
|
#define NO_DH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DSA_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DSA
|
||||||
|
#else
|
||||||
|
#define NO_DSA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_PSK_EN == DEF_ENABLED)
|
||||||
|
#undef NO_PSK
|
||||||
|
#else
|
||||||
|
#define NO_PSK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_3DES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_DES
|
||||||
|
#else
|
||||||
|
#define NO_DES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_AES_EN == DEF_ENABLED)
|
||||||
|
#undef NO_AES
|
||||||
|
#else
|
||||||
|
#define NO_AES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RC4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RC4
|
||||||
|
#else
|
||||||
|
#define NO_RC4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_RABBIT_EN == DEF_ENABLED)
|
||||||
|
#undef NO_RABBIT
|
||||||
|
#else
|
||||||
|
#define NO_RABBIT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_HC128_EN == DEF_ENABLED)
|
||||||
|
#undef NO_HC128
|
||||||
|
#else
|
||||||
|
#define NO_HC128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG)
|
||||||
|
#define BIG_ENDIAN_ORDER
|
||||||
|
#else
|
||||||
|
#undef BIG_ENDIAN_ORDER
|
||||||
|
#define LITTLE_ENDIAN_ORDER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_MD4_EN == DEF_ENABLED)
|
||||||
|
#undef NO_MD4
|
||||||
|
#else
|
||||||
|
#define NO_MD4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_WRITEV_EN == DEF_ENABLED)
|
||||||
|
#undef NO_WRITEV
|
||||||
|
#else
|
||||||
|
#define NO_WRITEV
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_RNG_SEED_EN == DEF_ENABLED)
|
||||||
|
#define NO_DEV_RANDOM
|
||||||
|
#else
|
||||||
|
#undef NO_DEV_RANDOM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_USER_IO_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_USER_IO
|
||||||
|
#else
|
||||||
|
#undef CYASSL_USER_IO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DYNAMIC_BUFFERS_EN == DEF_ENABLED)
|
||||||
|
#undef LARGE_STATIC_BUFFERS
|
||||||
|
#undef STATIC_CHUNKS_ONLY
|
||||||
|
#else
|
||||||
|
#define LARGE_STATIC_BUFFERS
|
||||||
|
#define STATIC_CHUNKS_ONLY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DER_LOAD_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_DTLS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_DTLS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_DTLS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_CALLBACKS_EN == DEF_ENABLED)
|
||||||
|
#define CYASSL_CALLBACKS
|
||||||
|
#else
|
||||||
|
#undef CYASSL_CALLBACKS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_FAST_MATH_EN == DEF_ENABLED)
|
||||||
|
#define USE_FAST_MATH
|
||||||
|
#else
|
||||||
|
#undef USE_FAST_MATH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (SSL_CFG_TFM_TIMING_RESISTANT_EN == DEF_ENABLED)
|
||||||
|
#define TFM_TIMING_RESISTANT
|
||||||
|
#else
|
||||||
|
#undef TFM_TIMING_RESISTANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* MICRIUM */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CYASSL_QL
|
||||||
|
#ifndef CYASSL_SEP
|
||||||
|
#define CYASSL_SEP
|
||||||
|
#endif
|
||||||
|
#ifndef OPENSSL_EXTRA
|
||||||
|
#define OPENSSL_EXTRA
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_CERTS
|
||||||
|
#define SESSION_CERTS
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_AESCCM
|
||||||
|
#define HAVE_AESCCM
|
||||||
|
#endif
|
||||||
|
#ifndef ATOMIC_USER
|
||||||
|
#define ATOMIC_USER
|
||||||
|
#endif
|
||||||
|
#ifndef CYASSL_DER_LOAD
|
||||||
|
#define CYASSL_DER_LOAD
|
||||||
|
#endif
|
||||||
|
#ifndef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
#ifndef HAVE_ECC
|
||||||
|
#define HAVE_ECC
|
||||||
|
#endif
|
||||||
|
#ifndef SESSION_INDEX
|
||||||
|
#define SESSION_INDEX
|
||||||
|
#endif
|
||||||
|
#endif /* CYASSL_QL */
|
||||||
|
|
||||||
|
|
||||||
|
#if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \
|
||||||
|
!defined(CYASSL_LEANPSK) && !defined(NO_CYASSL_MEMORY)
|
||||||
|
#define USE_CYASSL_MEMORY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS)
|
||||||
|
#undef KEEP_PEER_CERT
|
||||||
|
#define KEEP_PEER_CERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* stream ciphers except arc4 need 32bit alignment, intel ok without */
|
||||||
|
#ifndef XSTREAM_ALIGNMENT
|
||||||
|
#if defined(__x86_64__) || defined(__ia64__) || defined(__i386__)
|
||||||
|
#define NO_XSTREAM_ALIGNMENT
|
||||||
|
#else
|
||||||
|
#define XSTREAM_ALIGNMENT
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* if using hardware crypto and have alignment requirements, specify the
|
||||||
|
requirement here. The record header of SSL/TLS will prvent easy alignment.
|
||||||
|
This hint tries to help as much as possible. */
|
||||||
|
#ifndef CYASSL_GENERAL_ALIGNMENT
|
||||||
|
#ifdef CYASSL_AESNI
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 16
|
||||||
|
#elif defined(XSTREAM_ALIGNMENT)
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 4
|
||||||
|
#else
|
||||||
|
#define CYASSL_GENERAL_ALIGNMENT 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CRL
|
||||||
|
/* not widely supported yet */
|
||||||
|
#undef NO_SKID
|
||||||
|
#define NO_SKID
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Place any other flags or defines here */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* CTAO_CRYPT_SETTINGS_H */
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue