Compare commits
613 Commits
v5.3.0-sta
...
v5.4.0-sta
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57aac1c50b | ||
|
|
a48129eb99 | ||
|
|
032d59b077 | ||
|
|
86662bca2f | ||
|
|
7379e377ab | ||
|
|
983b9fc5fb | ||
|
|
4892435004 | ||
|
|
66aed8193a | ||
|
|
56325143f1 | ||
|
|
720030b5a9 | ||
|
|
03a32250da | ||
|
|
3d124c093e | ||
|
|
905f71d80d | ||
|
|
f7595cc77d | ||
|
|
2d6b6d62b2 | ||
|
|
a2b75e313a | ||
|
|
48d3cf593e | ||
|
|
251642a44a | ||
|
|
58cb91602d | ||
|
|
c9e9a421e9 | ||
|
|
91438c1087 | ||
|
|
49d292ec4f | ||
|
|
b952c2f777 | ||
|
|
2bfac42d65 | ||
|
|
70b9833e98 | ||
|
|
4e1e1e922a | ||
|
|
5e453ad932 | ||
|
|
e295328436 | ||
|
|
a771baf551 | ||
|
|
738d79c5d5 | ||
|
|
2111d6b179 | ||
|
|
74baa0dafa | ||
|
|
644050a736 | ||
|
|
cb6fa921a4 | ||
|
|
8f3449ffea | ||
|
|
90c2f4ad00 | ||
|
|
9ba77300f9 | ||
|
|
992c7b3b6f | ||
|
|
82b1dc0cd0 | ||
|
|
eff4fe398b | ||
|
|
7c49449a79 | ||
|
|
6b6abfac54 | ||
|
|
19106a9510 | ||
|
|
d9bf39ffaa | ||
|
|
44a49aeefa | ||
|
|
c8f5bd3d61 | ||
|
|
b2d1bf96ed | ||
|
|
a7fa7875e4 | ||
|
|
e92034cf6f | ||
|
|
711b2bb17a | ||
|
|
a171bebba4 | ||
|
|
3abffc3a3c | ||
|
|
683adb5917 | ||
|
|
fd4836772b | ||
|
|
df7e81d187 | ||
|
|
8fe3f51ecb | ||
|
|
5d74c49ecb | ||
|
|
ec8149cd69 | ||
|
|
9b085a44be | ||
|
|
63b4c475d4 | ||
|
|
39e53c2b7c | ||
|
|
ef73409fd4 | ||
|
|
8b73feb8ef | ||
|
|
ff6edbff94 | ||
|
|
9a256ca002 | ||
|
|
4376ade9c8 | ||
|
|
08488b0fae | ||
|
|
f5a5d4ada5 | ||
|
|
eb9a9ceef8 | ||
|
|
ded3f4e9b6 | ||
|
|
1c009e8f91 | ||
|
|
394f36a0d7 | ||
|
|
4caffee590 | ||
|
|
20e5c98b2c | ||
|
|
fd7bf8d04d | ||
|
|
144f2612e4 | ||
|
|
8e84560f71 | ||
|
|
afaf41823c | ||
|
|
5179741ddb | ||
|
|
ee3636f2e7 | ||
|
|
448cde5a4b | ||
|
|
4a962b7fb2 | ||
|
|
1b64b82a6f | ||
|
|
07b8f45d35 | ||
|
|
f8c67345d6 | ||
|
|
9dc2c27e3d | ||
|
|
10c8a1668e | ||
|
|
a8adde66c8 | ||
|
|
00391a5ace | ||
|
|
7ea13bf5bf | ||
|
|
dd7073740b | ||
|
|
e605cfeccb | ||
|
|
afdd5648aa | ||
|
|
d72edd03b8 | ||
|
|
c6aa4fc526 | ||
|
|
8fb48464e3 | ||
|
|
80f3db6e1d | ||
|
|
1077829f9d | ||
|
|
7b9c214b3c | ||
|
|
b16c2a2aef | ||
|
|
5819332f89 | ||
|
|
6c7db7318e | ||
|
|
b9be5c2c24 | ||
|
|
bb68766bda | ||
|
|
90749b7f88 | ||
|
|
96aedc2f47 | ||
|
|
7a7d8d170d | ||
|
|
bd75e1d6a4 | ||
|
|
0459e83a59 | ||
|
|
2c943282f0 | ||
|
|
b9a8f18a97 | ||
|
|
7d58dc5678 | ||
|
|
b2e7f4a8eb | ||
|
|
7555cd0685 | ||
|
|
402a4dafd4 | ||
|
|
fc5f1f5eca | ||
|
|
2bdcbcc8be | ||
|
|
4f6527353b | ||
|
|
1a9388b935 | ||
|
|
28213ad198 | ||
|
|
5bd8288b37 | ||
|
|
b7ec529f61 | ||
|
|
867a1f7afa | ||
|
|
e09bbb1989 | ||
|
|
13beadbfc3 | ||
|
|
2f1e236305 | ||
|
|
ed1fdc410e | ||
|
|
ba19737627 | ||
|
|
e8e35c9a92 | ||
|
|
1ba9ea9759 | ||
|
|
9cc928cb29 | ||
|
|
8b93d4510d | ||
|
|
0159f17692 | ||
|
|
f2acaa8ee9 | ||
|
|
28d149a103 | ||
|
|
e941a729a7 | ||
|
|
2257030792 | ||
|
|
999d3b3ab7 | ||
|
|
5adf7e4eb7 | ||
|
|
90aaeb283e | ||
|
|
ce61653a9a | ||
|
|
17659ed48c | ||
|
|
d76c46a96f | ||
|
|
f51c29d3ca | ||
|
|
e56394a2ab | ||
|
|
092b37f709 | ||
|
|
28df62921a | ||
|
|
e49f07694e | ||
|
|
5ade360d9e | ||
|
|
b87b255d52 | ||
|
|
741393e84f | ||
|
|
14c65e0117 | ||
|
|
cb80ffc1b5 | ||
|
|
d4d7e2e5f2 | ||
|
|
060dfe1a69 | ||
|
|
22336d30e5 | ||
|
|
3c3a90c988 | ||
|
|
31498de7a9 | ||
|
|
9d11e9092f | ||
|
|
94e7eacc5f | ||
|
|
456e463640 | ||
|
|
b84b808b1b | ||
|
|
999fa8394e | ||
|
|
10dfd8d129 | ||
|
|
55414290df | ||
|
|
9211825121 | ||
|
|
790584113f | ||
|
|
49740c5543 | ||
|
|
9a29dfc8cb | ||
|
|
047c662af8 | ||
|
|
940d0140f9 | ||
|
|
1977a13754 | ||
|
|
8dfcc76f50 | ||
|
|
5ef507c78d | ||
|
|
ce977e8c0b | ||
|
|
00b82888bc | ||
|
|
c34c32f621 | ||
|
|
43e11ec756 | ||
|
|
4de90efbe2 | ||
|
|
a5250482ce | ||
|
|
768737d21e | ||
|
|
79ea30a957 | ||
|
|
02dde373d1 | ||
|
|
78d3284c3c | ||
|
|
e2ad62b3d1 | ||
|
|
7fb17e0584 | ||
|
|
1cdc81546d | ||
|
|
ee12c12e98 | ||
|
|
8d804f6378 | ||
|
|
fdc4cdf5ec | ||
|
|
acc9f3701a | ||
|
|
40dda7e80f | ||
|
|
deb0c3e6fa | ||
|
|
4db7732d78 | ||
|
|
7d62fd09e4 | ||
|
|
74d692d6d5 | ||
|
|
9e1ecf3fb5 | ||
|
|
7dbf1a5154 | ||
|
|
bd536d3c9d | ||
|
|
40d9473e6a | ||
|
|
b8cff49044 | ||
|
|
099afe4419 | ||
|
|
beddc777d4 | ||
|
|
f05bcb30e0 | ||
|
|
ff4eabb17f | ||
|
|
1e84d1eb67 | ||
|
|
d41745cd28 | ||
|
|
0b0518bd55 | ||
|
|
73435389ed | ||
|
|
38ac96aefb | ||
|
|
69ca1d37c0 | ||
|
|
7c827d3a82 | ||
|
|
db6c14e7f9 | ||
|
|
fab05f2527 | ||
|
|
59e19cfd6c | ||
|
|
b5cac49be9 | ||
|
|
390908bccc | ||
|
|
92fcea39db | ||
|
|
9c5821569f | ||
|
|
2f6b5a97a4 | ||
|
|
6a0682d422 | ||
|
|
66775d90d4 | ||
|
|
4fc709d2af | ||
|
|
6795e1bf21 | ||
|
|
e34dda9383 | ||
|
|
128ebf54e9 | ||
|
|
fe8169c830 | ||
|
|
2834c22ce0 | ||
|
|
f2abf1892c | ||
|
|
1322c1a0b2 | ||
|
|
911f361285 | ||
|
|
8c0157c035 | ||
|
|
8f7db87f01 | ||
|
|
5e63740c6c | ||
|
|
7560199f18 | ||
|
|
8f0da12824 | ||
|
|
6a0c6049ce | ||
|
|
621f4f14af | ||
|
|
6d2a41b9fd | ||
|
|
8145ee6cef | ||
|
|
1b29f7353a | ||
|
|
8f68e32ef1 | ||
|
|
7e1549c684 | ||
|
|
fb704774a0 | ||
|
|
9bcbd645d6 | ||
|
|
dab0d5a7b0 | ||
|
|
d9d8b7e2d8 | ||
|
|
aa8df1af78 | ||
|
|
3a9176bcc9 | ||
|
|
25cf98a417 | ||
|
|
12a3efeca8 | ||
|
|
4e112419f5 | ||
|
|
c1dc90d9b0 | ||
|
|
ca05ad2dc0 | ||
|
|
e2abdf23a7 | ||
|
|
dfc9873c0f | ||
|
|
d1924928c0 | ||
|
|
d079662765 | ||
|
|
173077b142 | ||
|
|
30fb664163 | ||
|
|
2696c3cdd3 | ||
|
|
de04973051 | ||
|
|
60834ba516 | ||
|
|
9d22e11776 | ||
|
|
7586851734 | ||
|
|
d8ac35579c | ||
|
|
d51ba35ff9 | ||
|
|
6630a83182 | ||
|
|
e073500e8e | ||
|
|
af4fff80db | ||
|
|
f1ce0cc95d | ||
|
|
9656963f61 | ||
|
|
ed5470c991 | ||
|
|
0cac6cef39 | ||
|
|
ed6c9639d6 | ||
|
|
f414e65d4b | ||
|
|
2f4864cab2 | ||
|
|
7a25b9cd85 | ||
|
|
22eee3206d | ||
|
|
a22da10956 | ||
|
|
5a8c130040 | ||
|
|
a0dd92234b | ||
|
|
fb10c90935 | ||
|
|
c52c2e5dfb | ||
|
|
ad3f7e1de2 | ||
|
|
502cbc3847 | ||
|
|
013066ca06 | ||
|
|
c0f49b57e1 | ||
|
|
af3a55a94c | ||
|
|
f401a3b53d | ||
|
|
4d4ee3b2db | ||
|
|
364bf482eb | ||
|
|
0b78961111 | ||
|
|
5018da7f9f | ||
|
|
9ee1833bd2 | ||
|
|
1de54ed8d7 | ||
|
|
8899112456 | ||
|
|
f35eb20954 | ||
|
|
d5791d5c74 | ||
|
|
cafe5646b6 | ||
|
|
afc63a3bfa | ||
|
|
d600a4b887 | ||
|
|
ba3991af5e | ||
|
|
49008b169c | ||
|
|
c59ec54713 | ||
|
|
ba20f54b5b | ||
|
|
890abfbefc | ||
|
|
df673b987e | ||
|
|
9954afa538 | ||
|
|
f479600066 | ||
|
|
df87eb5508 | ||
|
|
190476dafe | ||
|
|
2748bfc737 | ||
|
|
9fb1143eba | ||
|
|
37ee5e2540 | ||
|
|
85e18b2f06 | ||
|
|
088d378ba4 | ||
|
|
047ed8ef61 | ||
|
|
fbb6faaa2f | ||
|
|
3c634e1f59 | ||
|
|
711a900ff7 | ||
|
|
4ffa63c938 | ||
|
|
86023378f8 | ||
|
|
8e69b1fa0e | ||
|
|
07e0a6fa8e | ||
|
|
86312be79e | ||
|
|
2cd9ca0c8f | ||
|
|
927ee21752 | ||
|
|
0bcd38f7d8 | ||
|
|
7bfe6aa127 | ||
|
|
eb28d38fa8 | ||
|
|
1b9f922ec3 | ||
|
|
dbfa207344 | ||
|
|
802e3127c0 | ||
|
|
873b2169f9 | ||
|
|
2af09a7151 | ||
|
|
30d836dc90 | ||
|
|
96d5814bfe | ||
|
|
debb598499 | ||
|
|
1bb2a35164 | ||
|
|
fdaf418fe0 | ||
|
|
3bcdef1972 | ||
|
|
8fbd4d70e6 | ||
|
|
e30ae359a4 | ||
|
|
55f3b7c277 | ||
|
|
42754ce98b | ||
|
|
64eaf74e83 | ||
|
|
ee78e63b87 | ||
|
|
8307a55429 | ||
|
|
a6465c2bd0 | ||
|
|
0cda12d446 | ||
|
|
fb3c611275 | ||
|
|
2dd27c8d4a | ||
|
|
cd008aac6a | ||
|
|
56c48b31ad | ||
|
|
2e307e1cd3 | ||
|
|
3d71956b48 | ||
|
|
fb9f90b98b | ||
|
|
9f2e3a2405 | ||
|
|
5672e2a885 | ||
|
|
8b9d2ad657 | ||
|
|
9cfcdfc7aa | ||
|
|
2543970419 | ||
|
|
cced5bd700 | ||
|
|
19c51dac45 | ||
|
|
494a9fe41a | ||
|
|
b212853bce | ||
|
|
d29c656d4f | ||
|
|
11a7756527 | ||
|
|
df10e1fad2 | ||
|
|
13135e72db | ||
|
|
be743b2204 | ||
|
|
3944a8737a | ||
|
|
dd0b9fb871 | ||
|
|
81cd1e652e | ||
|
|
c74315f1ef | ||
|
|
0554b02215 | ||
|
|
da91578bc7 | ||
|
|
2ed85926d5 | ||
|
|
8aa2da532c | ||
|
|
c83120d8c8 | ||
|
|
baaff96045 | ||
|
|
6245395f34 | ||
|
|
a91a2482e7 | ||
|
|
e061bc23f4 | ||
|
|
f5bbad185f | ||
|
|
8cb4819b53 | ||
|
|
84bca63b2e | ||
|
|
50c0b3d2a2 | ||
|
|
decf9972bb | ||
|
|
8c10c3776d | ||
|
|
aca199cb05 | ||
|
|
6e6c4500d6 | ||
|
|
98ec442b37 | ||
|
|
df06db114d | ||
|
|
81ad463026 | ||
|
|
4e8c362152 | ||
|
|
733fe1a8d3 | ||
|
|
c151dcec50 | ||
|
|
f93b23b524 | ||
|
|
0b6f7c1533 | ||
|
|
ea895e99b7 | ||
|
|
2800d00bb4 | ||
|
|
cacf5aeb7e | ||
|
|
a5fa98e5f0 | ||
|
|
ad49aea17d | ||
|
|
fa80aa6505 | ||
|
|
e8d779ab78 | ||
|
|
17d7098bf6 | ||
|
|
2d8cc055f0 | ||
|
|
da1cbfda46 | ||
|
|
3cf636163b | ||
|
|
c3e4c6b6bc | ||
|
|
b664cea735 | ||
|
|
0d59d36a80 | ||
|
|
6c0b65d655 | ||
|
|
d2cb0278f6 | ||
|
|
a1fb385450 | ||
|
|
5aea58d1e8 | ||
|
|
a5225af1c7 | ||
|
|
bcb5ff5ed9 | ||
|
|
03e086a139 | ||
|
|
74cbd08ff5 | ||
|
|
321d404d6b | ||
|
|
5c14bef6a8 | ||
|
|
b66fa1680a | ||
|
|
6a26dab73a | ||
|
|
5f148c3dcc | ||
|
|
fab9e29513 | ||
|
|
350f1d6496 | ||
|
|
26a92977f0 | ||
|
|
b329a16832 | ||
|
|
465a6ceb64 | ||
|
|
6424af120c | ||
|
|
36db5ef929 | ||
|
|
cdfdefe9af | ||
|
|
9e4de4bfc8 | ||
|
|
62cb2b4ca9 | ||
|
|
b5d65b9579 | ||
|
|
9a74745246 | ||
|
|
ec39ee2cb6 | ||
|
|
d80b282fdd | ||
|
|
04ddd0abe4 | ||
|
|
2fc129e236 | ||
|
|
a6b948ae59 | ||
|
|
f19b426a3f | ||
|
|
a8024a32c5 | ||
|
|
9427ebc5be | ||
|
|
b6290f1590 | ||
|
|
bc5262a5d0 | ||
|
|
6d9fbf7ab3 | ||
|
|
efc8d36aa5 | ||
|
|
6984cf83b2 | ||
|
|
e35c1e5a61 | ||
|
|
8de3765af9 | ||
|
|
d8817266be | ||
|
|
6dc47580ce | ||
|
|
832a7a40a6 | ||
|
|
249afbbfc9 | ||
|
|
5988f35593 | ||
|
|
f2e9f5349f | ||
|
|
368854b243 | ||
|
|
cf81ae79e4 | ||
|
|
9c2903c176 | ||
|
|
4a3ff40eb3 | ||
|
|
cd41c8beaf | ||
|
|
b53484be10 | ||
|
|
628a34a43d | ||
|
|
1026c7141e | ||
|
|
be172af3cd | ||
|
|
6940a5eaae | ||
|
|
40063f7487 | ||
|
|
5de9c45161 | ||
|
|
ac3fc89df9 | ||
|
|
54a96cef06 | ||
|
|
88abc9f3c1 | ||
|
|
c1f117413f | ||
|
|
1765e2c482 | ||
|
|
04ff6afbad | ||
|
|
2f91028f2d | ||
|
|
fd535242a0 | ||
|
|
8b46c95f06 | ||
|
|
d6935ed3be | ||
|
|
c9ae021427 | ||
|
|
50cc6d0422 | ||
|
|
6df65c0162 | ||
|
|
fc12c68601 | ||
|
|
1dc5e4cee5 | ||
|
|
ec619e3f35 | ||
|
|
579a37bdf0 | ||
|
|
0ef4707859 | ||
|
|
7f8f0dcffe | ||
|
|
d996086a6d | ||
|
|
fb9b96d498 | ||
|
|
6b1e3003fb | ||
|
|
3a4feddf75 | ||
|
|
643cd78ea2 | ||
|
|
1a57e3065a | ||
|
|
7305616452 | ||
|
|
50f53f9576 | ||
|
|
630c5ef364 | ||
|
|
852d5169d4 | ||
|
|
eea537e5ea | ||
|
|
e8160f049e | ||
|
|
c3a79f50d8 | ||
|
|
e6ce735ed8 | ||
|
|
6aaee73585 | ||
|
|
d1308fcdfc | ||
|
|
52fc3844a6 | ||
|
|
988236ca70 | ||
|
|
8124368319 | ||
|
|
c4920021d8 | ||
|
|
60864f19da | ||
|
|
2cf87a8049 | ||
|
|
7316a275ae | ||
|
|
c3d4c3086e | ||
|
|
05ce8329c9 | ||
|
|
7a95be1a97 | ||
|
|
9ca1206bf3 | ||
|
|
44be4e1cc8 | ||
|
|
9914da3046 | ||
|
|
a31b76878f | ||
|
|
829e9f5277 | ||
|
|
8e3d7fc6f4 | ||
|
|
36739bca62 | ||
|
|
818ac2b8dd | ||
|
|
798d81723b | ||
|
|
f5b0d3c0b4 | ||
|
|
36575ff480 | ||
|
|
5d93a48ddf | ||
|
|
5caef7eaba | ||
|
|
9bee0281cb | ||
|
|
fd9e1e21ed | ||
|
|
eb6f9152db | ||
|
|
761ab6b17a | ||
|
|
257c55a311 | ||
|
|
27e73818c5 | ||
|
|
692a01238e | ||
|
|
dca71d36f6 | ||
|
|
d90a89898c | ||
|
|
9fbb4a923f | ||
|
|
77fa0ccb82 | ||
|
|
531120131a | ||
|
|
26673a0f28 | ||
|
|
cb6a138caf | ||
|
|
f06ac9965c | ||
|
|
db23d8a0cf | ||
|
|
445c1e6ceb | ||
|
|
0747a16893 | ||
|
|
d5f7beefd4 | ||
|
|
063e757f6b | ||
|
|
d133fa6143 | ||
|
|
0c7e9a0104 | ||
|
|
59fdf05155 | ||
|
|
d95b2e69b5 | ||
|
|
b76c70d969 | ||
|
|
75d90aaf2f | ||
|
|
421f54e60a | ||
|
|
74b3df4f6c | ||
|
|
bc877dab2a | ||
|
|
1e1a722332 | ||
|
|
576f0aa045 | ||
|
|
6be3dae6d3 | ||
|
|
ad2119b2f8 | ||
|
|
36877d78b4 | ||
|
|
b59ac022c9 | ||
|
|
ccc9b1535d | ||
|
|
99b44f15ef | ||
|
|
3e774be88c | ||
|
|
e1aefc08ac | ||
|
|
88443dea8c | ||
|
|
b6b007de3c | ||
|
|
ef89e2e637 | ||
|
|
3e1ba5d4d4 | ||
|
|
b19f70d182 | ||
|
|
7e9896d162 | ||
|
|
9ffc300641 | ||
|
|
a9c7bc9d00 | ||
|
|
853db0841f | ||
|
|
ecf449dfe0 | ||
|
|
a4eaa31b5e | ||
|
|
4d4145e6a0 | ||
|
|
19e8bb05f3 | ||
|
|
ffe5599013 | ||
|
|
6e880495dc | ||
|
|
189c9ab234 | ||
|
|
e81670a3c0 | ||
|
|
9767631ebe | ||
|
|
af8865d13e | ||
|
|
bdd6072ede | ||
|
|
f12fd6ab8b | ||
|
|
af8f18b634 | ||
|
|
fff3402ed4 | ||
|
|
e606cccb10 | ||
|
|
97f54e8e0a | ||
|
|
ca955032a0 | ||
|
|
a9d28da7ce | ||
|
|
5f539b3921 | ||
|
|
cb929e1247 | ||
|
|
895522aa18 | ||
|
|
8b39f863e6 | ||
|
|
83f4f9e5ef | ||
|
|
c0d7f3b2e6 | ||
|
|
7233732159 | ||
|
|
9bf4a94796 | ||
|
|
cd2c7e1438 | ||
|
|
4013f83e4f | ||
|
|
15a48e411d | ||
|
|
8ea953f8c0 | ||
|
|
8c4887c166 | ||
|
|
4951646c91 | ||
|
|
fb3d38c3e8 | ||
|
|
85fc2bb7fa |
@@ -28,11 +28,11 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
|
||||
You must delete them, or cmake will refuse to work.")
|
||||
endif()
|
||||
|
||||
project(wolfssl VERSION 5.2.0 LANGUAGES C ASM)
|
||||
project(wolfssl VERSION 5.4.0 LANGUAGES C ASM)
|
||||
|
||||
# shared library versioning
|
||||
# increment if interfaces have been added, removed or changed
|
||||
set(LIBTOOL_CURRENT 32)
|
||||
set(LIBTOOL_CURRENT 34)
|
||||
# increment if source code has changed set to zero if current is incremented
|
||||
set(LIBTOOL_REVISION 0)
|
||||
# increment if interfaces have been added set to zero if interfaces have been
|
||||
@@ -266,6 +266,26 @@ if("${FIPS_VERSION}" STREQUAL "v1")
|
||||
override_cache(WOLFSSL_TLS13 "no")
|
||||
endif()
|
||||
|
||||
# DTLS v1.3
|
||||
add_option("WOLFSSL_DTLS13"
|
||||
"Enable wolfSSL DTLS v1.3 (default: disabled)"
|
||||
"no" "yes;no")
|
||||
|
||||
if(WOLFSSL_DTLS13)
|
||||
if (NOT WOLFSSL_DTLS)
|
||||
message(FATAL_ERROR "DTLS13 requires DTLS")
|
||||
endif()
|
||||
if (NOT WOLFSSL_TLS13)
|
||||
message(FATAL_ERROR "DTLS13 requires TLS13")
|
||||
endif()
|
||||
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_DTLS13")
|
||||
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_W64_WRAPPER")
|
||||
|
||||
if (WOLFSSL_AES)
|
||||
list(APPEND WOLFSSL_DEFINITIONS "-DWOLFSSL_AES_DIRECT")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Post-handshake authentication
|
||||
add_option("WOLFSSL_POSTAUTH"
|
||||
"Enable wolfSSL Post-handshake Authentication (default: disabled)"
|
||||
@@ -1405,24 +1425,9 @@ endif()
|
||||
# - wolfCrypt only
|
||||
|
||||
# fastmath
|
||||
set(FASTMATH_DEFAULT "no")
|
||||
|
||||
if(("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64") OR
|
||||
("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64"))
|
||||
set(FASTMATH_DEFAULT "yes")
|
||||
endif()
|
||||
|
||||
if(WOLFSSL_LINUXKM_DEFAULTS)
|
||||
set(FASTMATH_DEFAULT "no")
|
||||
endif()
|
||||
|
||||
if(WOLFSSL_SP_MATH)
|
||||
set(FASTMATH_DEFAULT "no")
|
||||
endif()
|
||||
|
||||
add_option("WOLFSSL_FAST_MATH"
|
||||
"Enable fast math ops (default: enabled on x86_64/aarch64)"
|
||||
${FASTMATH_DEFAULT} "yes;no")
|
||||
"Enable fast math ops (default: disabled)"
|
||||
"no" "yes;no")
|
||||
|
||||
if(WOLFSSL_FAST_MATH)
|
||||
# turn off fastmath if leanpsk on or asn off (w/o DH and ECC)
|
||||
@@ -1448,6 +1453,11 @@ endif()
|
||||
|
||||
# TODO: - Fast huge math
|
||||
|
||||
# SP math all
|
||||
add_option("WOLFSSL_SP_MATH_ALL"
|
||||
"Enable Single Precision math implementation for full algorithm suite (default: enabled)"
|
||||
"yes" "yes;no")
|
||||
|
||||
# Enable examples, used to disable examples
|
||||
if(WOLFSSL_LINUX_KM)
|
||||
set(EXAMPLES_DEFAULT "no")
|
||||
@@ -1870,6 +1880,7 @@ if(WOLFSSL_EXAMPLES)
|
||||
tests/hash.c
|
||||
tests/srp.c
|
||||
tests/suites.c
|
||||
tests/w64wrapper.c
|
||||
tests/unit.c
|
||||
examples/server/server.c
|
||||
examples/client/client.c)
|
||||
|
||||
153
ChangeLog.md
153
ChangeLog.md
@@ -1,3 +1,153 @@
|
||||
# wolfSSL Release 5.4.0 (July 11, 2022)
|
||||
|
||||
Note:
|
||||
** Future releases of wolfSSL will turn off TLS 1.1 by default
|
||||
** Release 5.4.0 made SP math the default math implementation. To make an equivalent build as –disable-fastmath from previous versions of wolfSSL, now requires using the configure option –enable-heapmath instead.
|
||||
|
||||
Release 5.4.0 of wolfSSL embedded TLS has bug fixes and new features including:
|
||||
|
||||
## Vulnerabilities
|
||||
* [High] Potential for DTLS DoS attack. In wolfSSL versions before 5.4.0 the return-routability check is wrongly skipped in a specific edge case. The check on the return-routability is there for stopping attacks that either consume excessive resources on the server, or try to use the server as an amplifier sending an excessive amount of messages to a victim IP. If using DTLS 1.0/1.2 on the server side users should update to avoid the potential DoS attack. CVE-2022-34293
|
||||
* [Medium] Ciphertext side channel attack on ECC and DH operations. Users on systems where rogue agents can monitor memory use should update the version of wolfSSL and change private ECC keys. Thanks to Sen Deng from Southern University of Science and Technology (SUSTech) for the report.
|
||||
* [Medium] Public disclosure of a side channel vulnerability that has been fixed since wolfSSL version 5.1.0. When running on AMD there is the potential to leak private key information with ECDSA operations due to a ciphertext side channel attack. Users on AMD doing ECDSA operations with wolfSSL versions less than 5.1.0 should update their wolfSSL version used. Thanks to professor Yinqian Zhang from Southern University of Science and Technology (SUSTech), his Ph.D. student Mengyuan Li from The Ohio State University, and his M.S students Sen Deng and Yining Tang from SUStech along with other collaborators; Luca Wilke, Jan Wichelmann and Professor Thomas Eisenbarth from the University of Lubeck, Professor Shuai Wang from Hong Kong University of Science and Technology, Professor Radu Teodorescu from The Ohio State University, Huibo Wang, Kang Li and Yueqiang Cheng from Baidu Security and Shoumeng Yang from Ant Financial Services Group.
|
||||
CVE-2020-12966 https://www.amd.com/en/corporate/product-security/bulletin/amd-sb-1013 CVE-2021-46744 https://www.amd.com/en/corporate/product-security/bulletin/amd-sb-1033
|
||||
|
||||
|
||||
## New Feature Additions
|
||||
|
||||
### DTLS 1.3
|
||||
* Support for using the new DTLSv1.3 protocol was added
|
||||
* Enhancements to bundled examples for an event driven server with DTLS 1.3 was added
|
||||
### Ports
|
||||
* Update for the version of VxWorks supported, adding in support for version 6.x
|
||||
* Support for new DPP and EAP-TEAP/EAP-FAST in wpa_supplicant
|
||||
* Update for TSIP version support, adding support for version 1.15 for RX65N and RX72N
|
||||
* Improved TSIP build to handle having the options WOLFSSL_AEAD_ONLY defined or NO_AES_CBC defined
|
||||
* Added support for offloading TLS1.3 operations to Renesas RX boards with TSIP
|
||||
### Misc.
|
||||
* Constant time improvements due to development of new constant time tests
|
||||
* Initial translation of API headers to Japanese and expansion of Japanese help message support in example applications
|
||||
* Add support for some FPKI (Federal PKI) certificate cases, UUID, FASC-N, PIV extension for use with smart cards
|
||||
* Add support for parsing additional CSR attributes such as unstructured name and content type
|
||||
* Add support for Linux getrandom() when defining the macro WOLFSSL_GETRANDOM
|
||||
* Add TLS 1.2 ciphersuite ECDHE_PSK_WITH_AES_128_GCM_SHA256 from RFC 8442
|
||||
* Expand CAAM support with QNX to include i.MX8 boards and add AES-CTR support
|
||||
* Enhanced glitching protection by hardening the TLS encrypt operations
|
||||
|
||||
## Math and Performance
|
||||
|
||||
### SP Math Additions
|
||||
* Support for ARMv3, ARMv6 and ARMv7a
|
||||
- Changes and improvements to get SP building for armv7-a
|
||||
- Updated assembly for moving large immediate values on ARMv6
|
||||
- Support for architectures with no ldrd/strd and clz
|
||||
* Reworked generation using common asm ruby code for 32bit ARM
|
||||
* Enable wolfSSL SP math all by default (sp_int.c)
|
||||
* Update SP math all to not use sp_int_word when SQR_MUL_ASM is available
|
||||
### SP Math Fixes
|
||||
* Fixes for constant time with div function
|
||||
* Fix casting warnings for Windows builds and assembly changes to support XMM6-15 being non-volatile
|
||||
* Fix for div_word when not using div function
|
||||
* Fixes for user settings with SP ASM and ED/Curve25519 small
|
||||
* Additional Wycheproof tests ran and fixes
|
||||
* Fix for SP math ECC non-blocking to always check `hashLen`
|
||||
* Fix for SP math handling edge case with submod
|
||||
|
||||
## Improvements and Optimizations
|
||||
|
||||
### Compatibility Layer
|
||||
* Provide access to "Finished" messages outside of compatibility layer builds
|
||||
* Remove unneeded FIPS guard on wolfSSL_EVP_PKEY_derive
|
||||
* Fix control command issues with AES-GCM, control command EVP_CTRL_GCM_IV_GEN
|
||||
* Add support for importing private only EC key to a WOLFSSL_EVP_PKEY struct
|
||||
* Add support for more extensions to wolfSSL_X509_print_ex
|
||||
* Update for internal to DER (i2d) AIPs to move the buffer pointer when passed in and the operation is successful
|
||||
* Return subject and issuer X509_NAME object even when not set
|
||||
### Ports
|
||||
* Renesas RA6M4 example update and fixes
|
||||
* Support multi-threaded use cases with Renesas SCE protected mode and TSIP
|
||||
* Add a global variable for heap-hint for use with TSIP
|
||||
* Changes to support v5.3.0 cube pack for STM32
|
||||
* Use the correct mutex type for embOS
|
||||
* ESP-IDF build cleanup and enhancements, adding in note regarding ESP-IDF Version
|
||||
* Support for SEGGER embOS and emNET
|
||||
* Fix to handle WOLFSSL_DTLS macro in Micrium build
|
||||
### Build Options
|
||||
* Support for verify only and no-PSS builds updated
|
||||
* Add the enable options wolfssh (mapped to the existing –enable-ssh)
|
||||
* Remove WOLFSSL_ALT_NAMES restriction on notBefore/notAfter use in Cert struct
|
||||
* Move several more definitions outside the BUILDING_WOLFSSL gate with linux kernel module build
|
||||
* Modify --enable-openssh to not enable non-FIPS algos for FIPS builds
|
||||
* Remove the Python wrappers from wolfSSL source (use pip install instead of using wolfSSL with Python and our separate Python repository)
|
||||
* Add --enable-openldap option to configure.ac for building the OpenLDAP port
|
||||
* Resolve DTLS build to handle not having –enable-hrrcookie when not needed
|
||||
* Add an --enable-strongswan option to configure.ac for building the Strongswan port
|
||||
* Improve defaults for 64-bit BSDs in configure
|
||||
* Crypto only build can now be used openssl extra
|
||||
* Update ASN template build to properly handle WOLFSSL_CERT_EXT and HAVE_OID_ENCODING
|
||||
* Allow using 3DES and MD5 with FIPS 140-3, as they fall outside of the FIPS boundary
|
||||
* Add the build option --enable-dh=const which replaces setting the macro WOLFSSL_DH_CONST and now conditionally link to -lm as needed
|
||||
* Add the macro WOLFSSL_HOSTNAME_VERIFY_ALT_NAME_ONLY which is used to verify hostname/ip address using alternate name (SAN) only and does not use the common name
|
||||
* WOLFSSL_DTLS_NO_HVR_ON_RESUME macro added (off by default to favor more security). If defined, a DTLS server will not do a cookie exchange on successful client resumption: the resumption will be faster (one RTT less) and will consume less bandwidth (one ClientHello and one HelloVerifyRequest less). On the other hand, if a valid SessionID is collected, forged clientHello messages will consume resources on the server.
|
||||
* Misc.
|
||||
* Refactoring of some internal TLS functions to reduce the memory usage
|
||||
* Make old less secure TimingPadVerify implementation available
|
||||
* Add support for aligned data with clang LLVM
|
||||
* Remove subject/issuer email from the list of alt. Email names in the DecodedCerts struct
|
||||
* Zeroizing of pre-master secret buffer in TLS 1.3
|
||||
* Update to allow TLS 1.3 application server to send session ticket
|
||||
* Improve the sniffer asynchronous test case to support multiple concurrent streams
|
||||
* Clean up wolfSSL_clear() and add more logging
|
||||
* Update to not error out on bad CRL next date if using NO_VERIFY when parsing
|
||||
* Add an example C# PSK client
|
||||
* Add ESP-IDF WOLFSSL_ESP8266 setting for ESP8266 devices
|
||||
* Support longer sigalg list for post quantum use cases and inter-op with OQS's OpenSSL fork
|
||||
* Improve AES-GCM word implementation of GMULT to be constant time
|
||||
* Additional sanity check with Ed25519/Ed448, now defaults to assume public key is not trusted
|
||||
* Support PSK ciphersuites in benchmark apps
|
||||
* FIPS in core hash using SHA2-256 and SHA2-384
|
||||
* Add ability to store issuer name components when parsing a certificate
|
||||
* Make the critical extension flags in DecodedCert always available
|
||||
* Updates to the default values for basic constraint with X509’s
|
||||
* Support using RSA OAEP with no malloc and add additional sanity checks
|
||||
* Leverage async code paths to support WANT_WRITE while sending packet fragments
|
||||
* New azsphere example for continuous integration testing
|
||||
* Update RSA key generation function to handle pairwise consistency tests with static memory pools used
|
||||
* Resolve build time warning by passing in and checking output length with internal SetCurve function
|
||||
* Support DTLS bidirectional shutdown in the examples
|
||||
* Improve DTLS version negotiation and downgrade capability
|
||||
|
||||
### General Fixes
|
||||
* Fixes for STM32 Hash/PKA, add some missing mutex frees, and add an additional benchmark
|
||||
* Fix missing return checks in KSDK ED25519 code
|
||||
* Fix compilation warnings from IAR
|
||||
* Fixes for STM32U5/H7 hash/crypto support
|
||||
* Fix for using track memory feature with FreeRTOS
|
||||
* Fixup XSTR processing for MICRIUM
|
||||
* Update Zephyr fs.h path
|
||||
* DTLS fixes with WANT_WRITE simulations
|
||||
* Fixes for BER use with PKCS7 to have additional sanity checks and guards on edge cases
|
||||
* Fix to handle exceptional edge case with TFM mp_exptmod_ex
|
||||
* Fix for stack and heap measurements of a 32-bit build
|
||||
* Fix to allow enabling AES key wrap (direct) with KCAPI
|
||||
* Fix --enable-openssh FIPS detection syntax in configure.ac
|
||||
* Fix to move wolfSSL_ERR_clear_error outside gate for OPENSSL_EXTRA
|
||||
* Remove MCAPI project's dependency on zlib version
|
||||
* Only use __builtin_offset on supported GCC versions (4+)
|
||||
* Fix for c89 builds with using WOLF_C89
|
||||
* Fix 64bit postfix for constants building with powerpc
|
||||
* Fixed async Sniffer with TLS v1.3, async removal of `WC_HW_WAIT_E` and sanitize leak
|
||||
* Fix for QAT ECC to gate use of HW based on marker
|
||||
* Fix the supported version extension to always check minDowngrade
|
||||
* Fix for TLS v1.1 length sanity check for large messages
|
||||
* Fixes for loading a long DER/ASN.1 certificate chain
|
||||
* Fix to expose the RSA public DER export functions with certgen
|
||||
* Fixes for building with small version of SHA3
|
||||
* Fix configure with WOLFSSL_WPAS_SMALL
|
||||
* Fix to free PKCS7 recipient list in error cases
|
||||
* Sanity check to confirm ssl->hsHashes is not NULL before attempting to dereference it
|
||||
* Clear the leftover byte count in Aes struct when setting IV
|
||||
|
||||
# wolfSSL Release 5.3.0 (May 3rd, 2022)
|
||||
|
||||
Release 5.3.0 of wolfSSL embedded TLS has bug fixes and new features including:
|
||||
@@ -123,7 +273,8 @@ Release 5.3.0 of wolfSSL embedded TLS has bug fixes and new features including:
|
||||
* SP ASM improvements for additional cache attack resistance
|
||||
* Add RSA check for small difference between p and q
|
||||
* 6-8% performance increase with ECC operations using SP int by improving the Montgomery Reduction
|
||||
* Testing and Validation
|
||||
|
||||
### Testing and Validation
|
||||
* All shell scripts in source tree now tested for correctness using shellcheck and bash -n
|
||||
* Added build testing under gcc-12 and -std=c++17 and fixed warnings
|
||||
* TLS 1.3 script test improvement to wait for server to write file
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
# ESP-IDF port
|
||||
|
||||
NOTICE: These Espressif examples have been created and tested with the latest stable release branch of
|
||||
[ESP-IDF V4](https://docs.espressif.com/projects/esp-idf/en/v4.4.1/esp32/get-started/index.html)
|
||||
and have not yet been upgraded to the master branch V5.
|
||||
See the latest [migration guides](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/migration-guides/index.html).
|
||||
|
||||
## Overview
|
||||
ESP-IDF development framework with wolfSSL by setting *WOLFSSL_ESPIDF* definition
|
||||
|
||||
|
||||
@@ -38,10 +38,14 @@ if(IS_DIRECTORY ${IDF_PATH}/components/cryptoauthlib)
|
||||
endif()
|
||||
|
||||
set(COMPONENT_SRCEXCLUDE
|
||||
"wolfcrypt/src/aes_asm.S"
|
||||
"wolfcrypt/src/evp.c"
|
||||
"wolfcrypt/src/misc.c"
|
||||
"src/bio.c"
|
||||
"./src/bio.c"
|
||||
"./src/conf.c"
|
||||
"./src/misc.c"
|
||||
"./src/pk.c"
|
||||
"./src/x509.c"
|
||||
"./src/x509_str.c"
|
||||
"./wolfcrypt/src/evp.c"
|
||||
"./wolfcrypt/src/misc.c"
|
||||
)
|
||||
|
||||
register_component()
|
||||
|
||||
@@ -23,10 +23,10 @@ WOLFSSLLIB_TRG_DIR=${IDF_PATH}/components/wolfssl
|
||||
WOLFSSLEXP_TRG_DIR=${IDF_PATH}/examples/protocols
|
||||
|
||||
if [ "$1" == "--verbose" ]; then
|
||||
WOLFSSSL_SETUP_VERBOSE=true
|
||||
WOLFSSL_SETUP_VERBOSE=true
|
||||
fi
|
||||
|
||||
if [ "${WOLFSSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
if [ "${WOLFSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
echo Verbose mode on!
|
||||
echo BASEDIR=${BASEDIR}
|
||||
echo SCRIPTDIR=${SCRIPTDIR}
|
||||
@@ -47,7 +47,7 @@ pushd $IDF_PATH > /dev/null
|
||||
echo "Copy files into $IDF_PATH"
|
||||
|
||||
# Remove/Create directories
|
||||
if [ "${WOLFSSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
if [ "${WOLFSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
echo "Remove/Create directories..."
|
||||
fi
|
||||
|
||||
@@ -67,7 +67,7 @@ pushd ${BASEDIR} > /dev/null # WOLFSSL TOP DIR
|
||||
|
||||
# copying ... files in src/ into $WOLFSSLLIB_TRG_DIR/src
|
||||
|
||||
if [ "${WOLFSSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
if [ "${WOLFSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
echo "Copying ... files in src/ into \$WOLFSSLLIB_TRG_DIR/srcs ..."
|
||||
fi
|
||||
|
||||
@@ -86,7 +86,7 @@ ${CPDCMD} -r ./wolfssl/openssl/*.h ${WOLFSSLLIB_TRG_DIR}/wolfssl/openssl/
|
||||
${CPDCMD} -r ./wolfssl/wolfcrypt ${WOLFSSLLIB_TRG_DIR}/wolfssl/
|
||||
|
||||
# user_settings.h
|
||||
if [ "${WOLFSSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
if [ "${WOLFSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
echo "Copying user_settings.h to ${WOLFSSLLIB_TRG_DIR}/include/"
|
||||
fi
|
||||
|
||||
@@ -104,7 +104,7 @@ ${CPDCMD} ./libs/component.mk ${WOLFSSLLIB_TRG_DIR}/
|
||||
pushd ${BASEDIR} > /dev/null # WOLFSSL TOP DIR
|
||||
|
||||
# Benchmark program
|
||||
if [ "${WOLFSSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
if [ "${WOLFSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
echo ""
|
||||
fi
|
||||
${RMDCMD} ${WOLFSSLEXP_TRG_DIR}/wolfssl_benchmark/
|
||||
@@ -119,7 +119,7 @@ ${CPDCMD} -r ${WOLFSSL_ESPIDFDIR}/examples/wolfssl_benchmark/* ${WOLFSSLEXP_TRG_
|
||||
${CPDCMD} -r ${WOLFSSL_ESPIDFDIR}/examples/wolfssl_benchmark/main/* ${WOLFSSLEXP_TRG_DIR}/wolfssl_benchmark/main/
|
||||
|
||||
# Crypt Test program
|
||||
if [ "${WOLFSSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
if [ "${WOLFSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
echo "Copying wolfssl_test to ${WOLFSSLEXP_TRG_DIR}/wolfssl_test/main/"
|
||||
fi
|
||||
${RMDCMD} ${WOLFSSLEXP_TRG_DIR}/wolfssl_test/
|
||||
@@ -131,7 +131,7 @@ ${CPDCMD} -r ${WOLFSSL_ESPIDFDIR}/examples/wolfssl_test/* ${WOLFSSLEXP_TRG_DIR}/
|
||||
${CPDCMD} -r ${WOLFSSL_ESPIDFDIR}/examples/wolfssl_test/main/* ${WOLFSSLEXP_TRG_DIR}/wolfssl_test/main/
|
||||
|
||||
# TLS Client program
|
||||
if [ "${WOLFSSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
if [ "${WOLFSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
echo "Copying TLS Client program to ${WOLFSSLEXP_TRG_DIR}/wolfssl_client/..."
|
||||
fi
|
||||
${RMDCMD} ${WOLFSSLEXP_TRG_DIR}/wolfssl_client/
|
||||
@@ -144,7 +144,7 @@ ${CPDCMD} -r ${WOLFSSL_ESPIDFDIR}/examples/wolfssl_client/main/* ${WOLFSSLEXP_TR
|
||||
${CPDCMD} -r ${WOLFSSL_ESPIDFDIR}/examples/wolfssl_client/main/include/* ${WOLFSSLEXP_TRG_DIR}/wolfssl_client/main/include/
|
||||
|
||||
# TLS Server program
|
||||
if [ "${WOLFSSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
if [ "${WOLFSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
echo "Copying TLS Server program to ${WOLFSSLEXP_TRG_DIR}/wolfssl_server/..."
|
||||
fi
|
||||
${RMDCMD} ${WOLFSSLEXP_TRG_DIR}/wolfssl_server/
|
||||
@@ -158,7 +158,7 @@ ${CPDCMD} -r ${WOLFSSL_ESPIDFDIR}/examples/wolfssl_server/main/include/* ${WOLFS
|
||||
|
||||
popd > /dev/null #
|
||||
|
||||
if [ "${WOLFSSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
if [ "${WOLFSSL_SETUP_VERBOSE}" == "true" ]; then
|
||||
echo "Copy complete!"
|
||||
fi
|
||||
|
||||
|
||||
@@ -20,10 +20,21 @@
|
||||
*/
|
||||
#undef WOLFSSL_ESPIDF
|
||||
#define WOLFSSL_ESPIDF
|
||||
|
||||
/*
|
||||
* choose ONE of these Espressif chips to define:
|
||||
*
|
||||
* WOLFSSL_ESPWROOM32
|
||||
* WOLFSSL_ESPWROOM32SE
|
||||
* WOLFSSL_ESP8266
|
||||
*
|
||||
* comment out the others:
|
||||
*/
|
||||
|
||||
#define WOLFSSL_ESPWROOM32
|
||||
/* Uncomment next line if using Espressif ESP32-WROOM-32SE */
|
||||
/* comment the above line #define WOLFSSL_ESPWROOM32 */
|
||||
/* #define WOLFSSL_ESPWROOM32SE */
|
||||
/* #define WOLFSSL_ESP8266 */
|
||||
|
||||
|
||||
#define BENCH_EMBEDDED
|
||||
#define USE_CERT_BUFFERS_2048
|
||||
|
||||
44
IDE/MSVS-2019-AZSPHERE/README.md
Normal file
44
IDE/MSVS-2019-AZSPHERE/README.md
Normal file
@@ -0,0 +1,44 @@
|
||||
wolfSSL for Microsoft Azure Sphere Devices in MSVS 2019
|
||||
==========================================
|
||||
|
||||
## Description
|
||||
This directory contains the Visual Studio CMake Project that is targeted for
|
||||
the visual studio 2019 Azure Sphere plugin.
|
||||
|
||||
## Limitations
|
||||
The example includes a client and server executable but the main.c app
|
||||
only runs the server by default. main.c can be manually modified to run the
|
||||
client instead if desired.
|
||||
|
||||
By default the main.c app include the hardware definitions for MT3620-mini. It
|
||||
can be manually modified to include hardware definitions for MT3620, or
|
||||
avnet MT3620 instead.
|
||||
|
||||
The app relies on a wolfSSL static library project, app and library are built
|
||||
by the CMakeLists.txt located in
|
||||
IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/CMakeLists.txt. The library and app
|
||||
use `user_settings.h` to enable and disable features.
|
||||
|
||||
### Set Up Steps
|
||||
0. Setup your Azure Sphere device.
|
||||
[Install Azure Sphere](https://docs.microsoft.com/en-us/azure-sphere/install/install)
|
||||
[Set up an account](https://docs.microsoft.com/en-us/azure-sphere/install/azure-directory-account)
|
||||
[Claim your device](https://docs.microsoft.com/en-us/azure-sphere/install/claim-device)
|
||||
[Configure networking](https://docs.microsoft.com/en-us/azure-sphere/install/configure-wifi)
|
||||
|
||||
1. Open the local folder IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere in MSVS 2019
|
||||
|
||||
2. From the file menu select "Build" dropdown
|
||||
+ Click: `Rebuild All` option
|
||||
|
||||
3. Connect your Azure Sphere MT3620-mini Development Board using USB.
|
||||
|
||||
4. Test the server.
|
||||
+ Run server(Azure Sphere) using: `Debug->'Start new instance'`
|
||||
+ Run the following wolfSSL example client command inside wolfssl directory.
|
||||
|
||||
```
|
||||
./examples/client/client -h "Server IP Address" -p 11111 -A ./certs/ca-cert.pem
|
||||
```
|
||||
|
||||
For other information please refer to the README in IDE/VS-AZURE-SPHERE
|
||||
138
IDE/MSVS-2019-AZSPHERE/client/client.c
Normal file
138
IDE/MSVS-2019-AZSPHERE/client/client.c
Normal file
@@ -0,0 +1,138 @@
|
||||
/* client.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
* wolfSSL 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.
|
||||
*
|
||||
* wolfSSL 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-1335, USA
|
||||
*/
|
||||
|
||||
#include "client.h"
|
||||
/* the usual suspects */
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
/* socket includes */
|
||||
#include <sys/socket.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/in.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* utility functions shared between client and server */
|
||||
#include <shared/util.h>
|
||||
|
||||
/* wolfSSL */
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#include <wolfssl/ssl.h>
|
||||
#include <wolfssl/certs_test.h>
|
||||
|
||||
/* Azure Sphere */
|
||||
#include <applibs/networking.h>
|
||||
|
||||
|
||||
#ifndef NO_MAIN_DRIVER
|
||||
int main(int argc, char** argv)
|
||||
#else
|
||||
int azsphere_client_app(int argc, char** argv)
|
||||
#endif
|
||||
{
|
||||
bool isNetworkingReady = false;
|
||||
SOCKET_T sockfd = 0;
|
||||
char buff[256];
|
||||
size_t len;
|
||||
int ret;
|
||||
|
||||
/* declare wolfSSL objects */
|
||||
WOLFSSL_CTX* ctx = NULL;
|
||||
WOLFSSL* ssl = NULL;
|
||||
|
||||
util_PrintIfAddr();
|
||||
|
||||
/* Check if the Azure Sphere Dev Board has network connectivity. */
|
||||
if ((Networking_IsNetworkingReady(&isNetworkingReady) < 0) || !isNetworkingReady) {
|
||||
fprintf(stderr, "ERROR: network is not up.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = wolfIO_TcpConnect(&sockfd, SERVER_IP, DEFAULT_PORT, 0);
|
||||
if ((ret != 0) || ((int)sockfd < 0)) {
|
||||
fprintf(stderr, "ERROR: failed to create socket.");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Initialize wolfSSL */
|
||||
wolfSSL_Init();
|
||||
|
||||
/* Create and initialize WOLFSSL_CTX */
|
||||
ctx = wolfSSL_CTX_new(wolfTLSv1_2_client_method());
|
||||
if (ctx == NULL) {
|
||||
fprintf(stderr, "ERROR: failed to create WOLFSSL_CTX\n");
|
||||
util_Cleanup(sockfd,ctx,ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Load client certificates into WOLFSSL_CTX */
|
||||
ret = wolfSSL_CTX_load_verify_buffer(ctx, CERT, SIZEOF_CERT, WOLFSSL_FILETYPE_ASN1);
|
||||
if (ret != SSL_SUCCESS) {
|
||||
fprintf(stderr, "ERROR: failed to load client certificate, "
|
||||
"please check the buffer.\n");
|
||||
util_Cleanup(sockfd,ctx,ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Create a WOLFSSL object */
|
||||
if ((ssl = wolfSSL_new(ctx)) == NULL) {
|
||||
fprintf(stderr, "ERROR: failed to create WOLFSSL object\n");
|
||||
util_Cleanup(sockfd,ctx,ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Attach wolfSSL to the socket */
|
||||
wolfSSL_set_fd(ssl, sockfd);
|
||||
|
||||
/* Connect to wolfSSL on the server side */
|
||||
if (wolfSSL_connect(ssl) != SSL_SUCCESS) {
|
||||
fprintf(stderr, "ERROR: failed to connect to wolfSSL\n");
|
||||
util_Cleanup(sockfd,ctx,ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Get length of message for server. */
|
||||
printf("\nMessage for server: %s\n",msg);
|
||||
len = strnlen(msg, sizeof(msg));
|
||||
|
||||
/* Send the message to the server */
|
||||
if (wolfSSL_write(ssl, msg, (int)len) != len) {
|
||||
fprintf(stderr, "ERROR: failed to write\n");
|
||||
util_Cleanup(sockfd,ctx,ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Read the server data into our buff array */
|
||||
memset(buff, 0, sizeof(buff));
|
||||
if (wolfSSL_read(ssl, buff, sizeof(buff) - 1) == -1) {
|
||||
fprintf(stderr, "ERROR: failed to read\n");
|
||||
util_Cleanup(sockfd,ctx,ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Print to stdout any data the server sends */
|
||||
printf("Server Reply: %s\n", buff);
|
||||
|
||||
/* Cleanup and return */
|
||||
util_Cleanup(sockfd,ctx,ssl);
|
||||
return 0; /* Return reporting a success */
|
||||
}
|
||||
125
IDE/MSVS-2019-AZSPHERE/client/client.h
Normal file
125
IDE/MSVS-2019-AZSPHERE/client/client.h
Normal file
@@ -0,0 +1,125 @@
|
||||
/* client.h
|
||||
*
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
* wolfSSL 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.
|
||||
*
|
||||
* wolfSSL 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-1335, USA
|
||||
*/
|
||||
|
||||
|
||||
#ifndef WOLFSSL_CLIENT_H
|
||||
#define WOLFSSL_CLIENT_H
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#ifdef NO_MAIN_DRIVER
|
||||
int azsphere_client_app(int argc, char** argv);
|
||||
#endif
|
||||
|
||||
static const unsigned char wolfssl_website_root_ca[] =
|
||||
{
|
||||
0x30, 0x82, 0x03, 0x75, 0x30, 0x82, 0x02, 0x5D, 0xA0, 0x03,
|
||||
0x02, 0x01, 0x02, 0x02, 0x0B, 0x04, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x15, 0x4B, 0x5A, 0xC3, 0x94, 0x30, 0x0D, 0x06, 0x09,
|
||||
0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05,
|
||||
0x00, 0x30, 0x57, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55,
|
||||
0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30, 0x17,
|
||||
0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x10, 0x47, 0x6C, 0x6F,
|
||||
0x62, 0x61, 0x6C, 0x53, 0x69, 0x67, 0x6E, 0x20, 0x6E, 0x76,
|
||||
0x2D, 0x73, 0x61, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55,
|
||||
0x04, 0x0B, 0x13, 0x07, 0x52, 0x6F, 0x6F, 0x74, 0x20, 0x43,
|
||||
0x41, 0x31, 0x1B, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03,
|
||||
0x13, 0x12, 0x47, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x53, 0x69,
|
||||
0x67, 0x6E, 0x20, 0x52, 0x6F, 0x6F, 0x74, 0x20, 0x43, 0x41,
|
||||
0x30, 0x1E, 0x17, 0x0D, 0x39, 0x38, 0x30, 0x39, 0x30, 0x31,
|
||||
0x31, 0x32, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x17, 0x0D, 0x32,
|
||||
0x38, 0x30, 0x31, 0x32, 0x38, 0x31, 0x32, 0x30, 0x30, 0x30,
|
||||
0x30, 0x5A, 0x30, 0x57, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03,
|
||||
0x55, 0x04, 0x06, 0x13, 0x02, 0x42, 0x45, 0x31, 0x19, 0x30,
|
||||
0x17, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x10, 0x47, 0x6C,
|
||||
0x6F, 0x62, 0x61, 0x6C, 0x53, 0x69, 0x67, 0x6E, 0x20, 0x6E,
|
||||
0x76, 0x2D, 0x73, 0x61, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03,
|
||||
0x55, 0x04, 0x0B, 0x13, 0x07, 0x52, 0x6F, 0x6F, 0x74, 0x20,
|
||||
0x43, 0x41, 0x31, 0x1B, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04,
|
||||
0x03, 0x13, 0x12, 0x47, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x53,
|
||||
0x69, 0x67, 0x6E, 0x20, 0x52, 0x6F, 0x6F, 0x74, 0x20, 0x43,
|
||||
0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A,
|
||||
0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00,
|
||||
0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02,
|
||||
0x82, 0x01, 0x01, 0x00, 0xDA, 0x0E, 0xE6, 0x99, 0x8D, 0xCE,
|
||||
0xA3, 0xE3, 0x4F, 0x8A, 0x7E, 0xFB, 0xF1, 0x8B, 0x83, 0x25,
|
||||
0x6B, 0xEA, 0x48, 0x1F, 0xF1, 0x2A, 0xB0, 0xB9, 0x95, 0x11,
|
||||
0x04, 0xBD, 0xF0, 0x63, 0xD1, 0xE2, 0x67, 0x66, 0xCF, 0x1C,
|
||||
0xDD, 0xCF, 0x1B, 0x48, 0x2B, 0xEE, 0x8D, 0x89, 0x8E, 0x9A,
|
||||
0xAF, 0x29, 0x80, 0x65, 0xAB, 0xE9, 0xC7, 0x2D, 0x12, 0xCB,
|
||||
0xAB, 0x1C, 0x4C, 0x70, 0x07, 0xA1, 0x3D, 0x0A, 0x30, 0xCD,
|
||||
0x15, 0x8D, 0x4F, 0xF8, 0xDD, 0xD4, 0x8C, 0x50, 0x15, 0x1C,
|
||||
0xEF, 0x50, 0xEE, 0xC4, 0x2E, 0xF7, 0xFC, 0xE9, 0x52, 0xF2,
|
||||
0x91, 0x7D, 0xE0, 0x6D, 0xD5, 0x35, 0x30, 0x8E, 0x5E, 0x43,
|
||||
0x73, 0xF2, 0x41, 0xE9, 0xD5, 0x6A, 0xE3, 0xB2, 0x89, 0x3A,
|
||||
0x56, 0x39, 0x38, 0x6F, 0x06, 0x3C, 0x88, 0x69, 0x5B, 0x2A,
|
||||
0x4D, 0xC5, 0xA7, 0x54, 0xB8, 0x6C, 0x89, 0xCC, 0x9B, 0xF9,
|
||||
0x3C, 0xCA, 0xE5, 0xFD, 0x89, 0xF5, 0x12, 0x3C, 0x92, 0x78,
|
||||
0x96, 0xD6, 0xDC, 0x74, 0x6E, 0x93, 0x44, 0x61, 0xD1, 0x8D,
|
||||
0xC7, 0x46, 0xB2, 0x75, 0x0E, 0x86, 0xE8, 0x19, 0x8A, 0xD5,
|
||||
0x6D, 0x6C, 0xD5, 0x78, 0x16, 0x95, 0xA2, 0xE9, 0xC8, 0x0A,
|
||||
0x38, 0xEB, 0xF2, 0x24, 0x13, 0x4F, 0x73, 0x54, 0x93, 0x13,
|
||||
0x85, 0x3A, 0x1B, 0xBC, 0x1E, 0x34, 0xB5, 0x8B, 0x05, 0x8C,
|
||||
0xB9, 0x77, 0x8B, 0xB1, 0xDB, 0x1F, 0x20, 0x91, 0xAB, 0x09,
|
||||
0x53, 0x6E, 0x90, 0xCE, 0x7B, 0x37, 0x74, 0xB9, 0x70, 0x47,
|
||||
0x91, 0x22, 0x51, 0x63, 0x16, 0x79, 0xAE, 0xB1, 0xAE, 0x41,
|
||||
0x26, 0x08, 0xC8, 0x19, 0x2B, 0xD1, 0x46, 0xAA, 0x48, 0xD6,
|
||||
0x64, 0x2A, 0xD7, 0x83, 0x34, 0xFF, 0x2C, 0x2A, 0xC1, 0x6C,
|
||||
0x19, 0x43, 0x4A, 0x07, 0x85, 0xE7, 0xD3, 0x7C, 0xF6, 0x21,
|
||||
0x68, 0xEF, 0xEA, 0xF2, 0x52, 0x9F, 0x7F, 0x93, 0x90, 0xCF,
|
||||
0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x42, 0x30, 0x40, 0x30,
|
||||
0x0E, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04,
|
||||
0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x0F, 0x06, 0x03, 0x55,
|
||||
0x1D, 0x13, 0x01, 0x01, 0xFF, 0x04, 0x05, 0x30, 0x03, 0x01,
|
||||
0x01, 0xFF, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04,
|
||||
0x16, 0x04, 0x14, 0x60, 0x7B, 0x66, 0x1A, 0x45, 0x0D, 0x97,
|
||||
0xCA, 0x89, 0x50, 0x2F, 0x7D, 0x04, 0xCD, 0x34, 0xA8, 0xFF,
|
||||
0xFC, 0xFD, 0x4B, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48,
|
||||
0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82,
|
||||
0x01, 0x01, 0x00, 0xD6, 0x73, 0xE7, 0x7C, 0x4F, 0x76, 0xD0,
|
||||
0x8D, 0xBF, 0xEC, 0xBA, 0xA2, 0xBE, 0x34, 0xC5, 0x28, 0x32,
|
||||
0xB5, 0x7C, 0xFC, 0x6C, 0x9C, 0x2C, 0x2B, 0xBD, 0x09, 0x9E,
|
||||
0x53, 0xBF, 0x6B, 0x5E, 0xAA, 0x11, 0x48, 0xB6, 0xE5, 0x08,
|
||||
0xA3, 0xB3, 0xCA, 0x3D, 0x61, 0x4D, 0xD3, 0x46, 0x09, 0xB3,
|
||||
0x3E, 0xC3, 0xA0, 0xE3, 0x63, 0x55, 0x1B, 0xF2, 0xBA, 0xEF,
|
||||
0xAD, 0x39, 0xE1, 0x43, 0xB9, 0x38, 0xA3, 0xE6, 0x2F, 0x8A,
|
||||
0x26, 0x3B, 0xEF, 0xA0, 0x50, 0x56, 0xF9, 0xC6, 0x0A, 0xFD,
|
||||
0x38, 0xCD, 0xC4, 0x0B, 0x70, 0x51, 0x94, 0x97, 0x98, 0x04,
|
||||
0xDF, 0xC3, 0x5F, 0x94, 0xD5, 0x15, 0xC9, 0x14, 0x41, 0x9C,
|
||||
0xC4, 0x5D, 0x75, 0x64, 0x15, 0x0D, 0xFF, 0x55, 0x30, 0xEC,
|
||||
0x86, 0x8F, 0xFF, 0x0D, 0xEF, 0x2C, 0xB9, 0x63, 0x46, 0xF6,
|
||||
0xAA, 0xFC, 0xDF, 0xBC, 0x69, 0xFD, 0x2E, 0x12, 0x48, 0x64,
|
||||
0x9A, 0xE0, 0x95, 0xF0, 0xA6, 0xEF, 0x29, 0x8F, 0x01, 0xB1,
|
||||
0x15, 0xB5, 0x0C, 0x1D, 0xA5, 0xFE, 0x69, 0x2C, 0x69, 0x24,
|
||||
0x78, 0x1E, 0xB3, 0xA7, 0x1C, 0x71, 0x62, 0xEE, 0xCA, 0xC8,
|
||||
0x97, 0xAC, 0x17, 0x5D, 0x8A, 0xC2, 0xF8, 0x47, 0x86, 0x6E,
|
||||
0x2A, 0xC4, 0x56, 0x31, 0x95, 0xD0, 0x67, 0x89, 0x85, 0x2B,
|
||||
0xF9, 0x6C, 0xA6, 0x5D, 0x46, 0x9D, 0x0C, 0xAA, 0x82, 0xE4,
|
||||
0x99, 0x51, 0xDD, 0x70, 0xB7, 0xDB, 0x56, 0x3D, 0x61, 0xE4,
|
||||
0x6A, 0xE1, 0x5C, 0xD6, 0xF6, 0xFE, 0x3D, 0xDE, 0x41, 0xCC,
|
||||
0x07, 0xAE, 0x63, 0x52, 0xBF, 0x53, 0x53, 0xF4, 0x2B, 0xE9,
|
||||
0xC7, 0xFD, 0xB6, 0xF7, 0x82, 0x5F, 0x85, 0xD2, 0x41, 0x18,
|
||||
0xDB, 0x81, 0xB3, 0x04, 0x1C, 0xC5, 0x1F, 0xA4, 0x80, 0x6F,
|
||||
0x15, 0x20, 0xC9, 0xDE, 0x0C, 0x88, 0x0A, 0x1D, 0xD6, 0x66,
|
||||
0x55, 0xE2, 0xFC, 0x48, 0xC9, 0x29, 0x26, 0x69, 0xE0
|
||||
};
|
||||
static const int sizeof_wolfssl_website_root_ca = sizeof(wolfssl_website_root_ca);
|
||||
|
||||
#endif /* WOLFSSL_CLIENT_H */
|
||||
25
IDE/MSVS-2019-AZSPHERE/include.am
Normal file
25
IDE/MSVS-2019-AZSPHERE/include.am
Normal file
@@ -0,0 +1,25 @@
|
||||
# vim:ft=automake
|
||||
# included from Top Level Makefile.am
|
||||
# All paths should be given relative to the root
|
||||
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/client/client.c
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/client/client.h
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/server/server.c
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/server/server.h
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/shared/util.h
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/user_settings.h
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/.gitignore
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/CMakeLists.txt
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/CMakeSettings.json
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/avnet_mt3620_sk/inc/hw/template_appliance.h
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/avnet_mt3620_sk/template_appliance.json
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/mt3620_rdb/inc/hw/template_appliance.h
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/mt3620_rdb/template_appliance.json
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/seeed_mt3620_mdb/inc/hw/template_appliance.h
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/HardwareDefinitions/seeed_mt3620_mdb/template_appliance.json
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/app_manifest.json
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/applibs_versions.h
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/launch.vs.json
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/main.c
|
||||
EXTRA_DIST+= IDE/MSVS-2019-AZSPHERE/README.md
|
||||
|
||||
213
IDE/MSVS-2019-AZSPHERE/server/server.c
Normal file
213
IDE/MSVS-2019-AZSPHERE/server/server.c
Normal file
@@ -0,0 +1,213 @@
|
||||
/* server.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
* wolfSSL 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.
|
||||
*
|
||||
* wolfSSL 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-1335, USA
|
||||
*/
|
||||
|
||||
#include "server.h"
|
||||
/* the usual suspects */
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
/* socket includes */
|
||||
#include <sys/socket.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/in.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* <shared/util.h> includes */
|
||||
#include <shared/util.h>
|
||||
|
||||
/* wolfSSL */
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#include <wolfssl/ssl.h>
|
||||
#include <wolfssl/certs_test.h>
|
||||
|
||||
/* Azure Sphere */
|
||||
#include <applibs/log.h>
|
||||
#include <applibs/networking.h>
|
||||
|
||||
#define BIND_PORT 11111
|
||||
#define CERT_BUF server_cert_der_2048
|
||||
#define SIZEOF_CERT_BUF sizeof_server_cert_der_2048
|
||||
#define KEY_BUF server_key_der_2048
|
||||
#define SIZEOF_KEY_BUF sizeof_server_key_der_2048
|
||||
|
||||
#ifndef NO_MAIN_DRIVER
|
||||
int main(void)
|
||||
#else
|
||||
int azsphere_server_app(void)
|
||||
#endif
|
||||
{
|
||||
bool isNetworkingReady = false;
|
||||
int sockfd;
|
||||
int connd;
|
||||
struct sockaddr_in servAddr;
|
||||
struct sockaddr_in clientAddr;
|
||||
socklen_t size = sizeof(clientAddr);
|
||||
char buff[256];
|
||||
size_t len;
|
||||
int shutdown = 0;
|
||||
int ret;
|
||||
const char* reply = "I hear ya fa shizzle!\n";
|
||||
|
||||
/* declare wolfSSL objects */
|
||||
WOLFSSL_CTX* ctx = NULL;
|
||||
WOLFSSL* ssl = NULL;
|
||||
|
||||
util_PrintIfAddr();
|
||||
|
||||
/* Check if the Azure Sphere Dev Board has network connectivity. */
|
||||
if ((Networking_IsNetworkingReady(&isNetworkingReady) < 0) || !isNetworkingReady) {
|
||||
fprintf(stderr,"Error: Network is not up.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Initialize wolfSSL */
|
||||
wolfSSL_Init();
|
||||
|
||||
/* Create a socket that uses an internet IPv4 address,
|
||||
* Sets the socket to be stream based (TCP),
|
||||
* 0 means choose the default protocol. */
|
||||
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
|
||||
fprintf(stderr, "ERROR: failed to create the socket\n");
|
||||
util_Cleanup(sockfd, ctx, ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Create and initialize WOLFSSL_CTX */
|
||||
if ((ctx = wolfSSL_CTX_new(wolfTLSv1_2_server_method())) == NULL) {
|
||||
fprintf(stderr, "ERROR: failed to create WOLFSSL_CTX\n");
|
||||
util_Cleanup(sockfd, ctx, ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Load server certificates into WOLFSSL_CTX */
|
||||
if (wolfSSL_CTX_use_certificate_buffer(ctx, CERT_BUF, SIZEOF_CERT_BUF, SSL_FILETYPE_ASN1)
|
||||
!= SSL_SUCCESS) {
|
||||
fprintf(stderr, "ERROR: failed to load %s, please check the file.\n",
|
||||
CERT_BUF);
|
||||
util_Cleanup(sockfd, ctx, ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Load server key into WOLFSSL_CTX */
|
||||
if (wolfSSL_CTX_use_PrivateKey_buffer(ctx, KEY_BUF, SIZEOF_KEY_BUF, SSL_FILETYPE_ASN1)
|
||||
!= SSL_SUCCESS) {
|
||||
fprintf(stderr, "ERROR: failed to load %s, please check the file.\n",
|
||||
KEY_BUF);
|
||||
util_Cleanup(sockfd, ctx, ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Initialize the server address struct with zeros */
|
||||
memset(&servAddr, 0, sizeof(servAddr));
|
||||
|
||||
/* Fill in the server address */
|
||||
servAddr.sin_family = AF_INET; /* using IPv4 */
|
||||
servAddr.sin_port = htons(BIND_PORT); /* on BIND_PORT */
|
||||
servAddr.sin_addr.s_addr = INADDR_ANY; /* from anywhere */
|
||||
|
||||
/* Bind the server socket to our port */
|
||||
if (bind(sockfd, (struct sockaddr*)&servAddr, sizeof(servAddr)) == -1) {
|
||||
fprintf(stderr, "ERROR: failed to bind\n");
|
||||
util_Cleanup(sockfd, ctx, ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Listen for a new connection, allow 5 pending connections */
|
||||
if (listen(sockfd, 5) == -1) {
|
||||
fprintf(stderr, "ERROR: failed to listen\n");
|
||||
util_Cleanup(sockfd, ctx, ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Continue to accept clients until shutdown is issued */
|
||||
while (!shutdown) {
|
||||
printf("Waiting for a connection...\n");
|
||||
|
||||
/* Accept client connections */
|
||||
if ((connd = accept(sockfd, (struct sockaddr*)&clientAddr, &size))
|
||||
== -1) {
|
||||
fprintf(stderr, "ERROR: failed to accept the connection\n\n");
|
||||
util_Cleanup(sockfd, ctx, ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Create a WOLFSSL object */
|
||||
if ((ssl = wolfSSL_new(ctx)) == NULL) {
|
||||
fprintf(stderr, "ERROR: failed to create WOLFSSL object\n");
|
||||
util_Cleanup(sockfd, ctx, ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Attach wolfSSL to the socket */
|
||||
wolfSSL_set_fd(ssl, connd);
|
||||
|
||||
/* Establish TLS connection */
|
||||
ret = wolfSSL_accept(ssl);
|
||||
if (ret != SSL_SUCCESS) {
|
||||
fprintf(stderr, "wolfSSL_accept error = %d\n",
|
||||
wolfSSL_get_error(ssl, ret));
|
||||
util_Cleanup(sockfd, ctx, ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("Client connected successfully\n");
|
||||
|
||||
/* Read the client data into our buff array */
|
||||
memset(buff, 0, sizeof(buff));
|
||||
if (wolfSSL_read(ssl, buff, sizeof(buff)-1) == -1) {
|
||||
fprintf(stderr, "ERROR: failed to read\n");
|
||||
util_Cleanup(sockfd, ctx, ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Print to stdout any data the client sends */
|
||||
printf("Client: %s\n", buff);
|
||||
|
||||
/* Check for server shutdown command */
|
||||
if (strncmp(buff, "shutdown", 8) == 0) {
|
||||
printf("Shutdown command issued!\n");
|
||||
shutdown = 1;
|
||||
}
|
||||
|
||||
/* Write our reply into buff */
|
||||
memset(buff, 0, sizeof(buff));
|
||||
memcpy(buff, reply, strlen(reply));
|
||||
len = strnlen(buff, sizeof(buff));
|
||||
|
||||
/* Reply back to the client */
|
||||
if (wolfSSL_write(ssl, buff, (int)len) != len) {
|
||||
fprintf(stderr, "ERROR: failed to write\n");
|
||||
util_Cleanup(sockfd, ctx, ssl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Cleanup after this connection */
|
||||
wolfSSL_free(ssl); /* Free the wolfSSL object */
|
||||
close(connd); /* Close the connection to the client */
|
||||
}
|
||||
|
||||
printf("Shutdown complete\n");
|
||||
|
||||
/* Cleanup and return */
|
||||
util_Cleanup(sockfd, ctx, ssl);
|
||||
return 0; /* Return reporting a success */
|
||||
}
|
||||
33
IDE/MSVS-2019-AZSPHERE/server/server.h
Normal file
33
IDE/MSVS-2019-AZSPHERE/server/server.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/* server.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
* wolfSSL 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.
|
||||
*
|
||||
* wolfSSL 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-1335, USA
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#ifndef WOLFSSL_SERVER_H
|
||||
#define WOLFSSL_SERVER_H
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#ifdef NO_MAIN_DRIVER
|
||||
int azsphere_server_app(void);
|
||||
#endif
|
||||
|
||||
#endif /* WOLFSSL_SERVER_H */
|
||||
|
||||
82
IDE/MSVS-2019-AZSPHERE/shared/util.h
Normal file
82
IDE/MSVS-2019-AZSPHERE/shared/util.h
Normal file
@@ -0,0 +1,82 @@
|
||||
/* util.h
|
||||
*
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
* wolfSSL 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.
|
||||
*
|
||||
* wolfSSL 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-1335, USA
|
||||
*/
|
||||
|
||||
#ifndef _UTIL_H_
|
||||
#define _UTIL_H_
|
||||
|
||||
#include <stdio.h>
|
||||
#include <wolfssl/ssl.h>
|
||||
#include <ifaddrs.h>
|
||||
#include <applibs/log.h>
|
||||
|
||||
#define _GNU_SOURCE /* defines NI_NUMERICHOST */
|
||||
#ifndef NI_MAXHOST
|
||||
#define NI_MAXHOST 256
|
||||
#endif
|
||||
|
||||
static void util_Cleanup(int sockfd, WOLFSSL_CTX* ctx, WOLFSSL* ssl)
|
||||
{
|
||||
wolfSSL_free(ssl); /* Free the wolfSSL object */
|
||||
wolfSSL_CTX_free(ctx); /* Free the wolfSSL context object */
|
||||
wolfSSL_Cleanup(); /* Cleanup the wolfSSL environment */
|
||||
close(sockfd); /* Close the connection to the server */
|
||||
}
|
||||
|
||||
/* Displays each AF_INET interface and it's IP Address
|
||||
* Return: WOLFSSL_SUCCESS if print is successful else WOLFSSL_FAILURE
|
||||
*/
|
||||
static int util_PrintIfAddr(void)
|
||||
{
|
||||
char host[NI_MAXHOST];
|
||||
struct ifaddrs* ifaddr, * nxt;
|
||||
int family, info, n;
|
||||
|
||||
/* Get a linked list of 'struct ifaddrs*' */
|
||||
if (getifaddrs(&ifaddr) != 0) {
|
||||
fprintf(stderr, "ERROR: Getting network interface and IP address");
|
||||
return WOLFSSL_FAILURE;
|
||||
}
|
||||
printf("\nInterface IP Address\n");
|
||||
/* Traverse ifaddr linked list using nxt */
|
||||
for (nxt = ifaddr; nxt != NULL; nxt = nxt->ifa_next) {
|
||||
if (nxt->ifa_addr == NULL)
|
||||
continue;
|
||||
family = nxt->ifa_addr->sa_family;
|
||||
/* Display the address of each AF_INET* interface */
|
||||
if (family == AF_INET) {
|
||||
info = getnameinfo(nxt->ifa_addr, sizeof(struct sockaddr_in),
|
||||
host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
|
||||
if (info != 0) {
|
||||
fprintf(stderr, "Failed to getnameinfo");
|
||||
freeifaddrs(ifaddr);
|
||||
return WOLFSSL_FAILURE;
|
||||
}
|
||||
/* Determine amount of space, n, to justify IP Address */
|
||||
n = (int)strlen("Interface ") - (int)strlen(nxt->ifa_name);
|
||||
n = (n > 0) ? n : 1; /* Set space to 1 if n is negative */
|
||||
printf("%s %*c%s>\n", nxt->ifa_name, n, '<', host);
|
||||
}
|
||||
}
|
||||
printf("\n");
|
||||
freeifaddrs(ifaddr);
|
||||
return WOLFSSL_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
96
IDE/MSVS-2019-AZSPHERE/user_settings.h
Normal file
96
IDE/MSVS-2019-AZSPHERE/user_settings.h
Normal file
@@ -0,0 +1,96 @@
|
||||
/* user_settings.h
|
||||
*
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
* wolfSSL 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.
|
||||
*
|
||||
* wolfSSL 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-1335, USA
|
||||
*/
|
||||
|
||||
#ifndef _USER_SETTINGS_H_
|
||||
#define _USER_SETTINGS_H_
|
||||
|
||||
#define SERVER_IP "192.168.1.123"
|
||||
#define CUSTOM_SERVER_CONNECTION
|
||||
|
||||
#define WOLFSSL_AZSPHERE
|
||||
/* Client connects to the server with these details. */
|
||||
#ifdef CUSTOM_SERVER_CONNECTION
|
||||
#ifndef SERVER_IP
|
||||
#define SERVER_IP "192.168.1.200" /* Local Test Server IP */
|
||||
#endif
|
||||
#ifndef DEFAULT_PORT
|
||||
#define DEFAULT_PORT 11111
|
||||
#endif
|
||||
#define CERT ca_cert_der_2048
|
||||
#define SIZEOF_CERT sizeof_ca_cert_der_2048
|
||||
static const char msg[] = "Are you listening wolfSSL Server?";
|
||||
#else
|
||||
#ifndef SERVER_IP
|
||||
#define SERVER_IP "www.wolfssl.com"
|
||||
#endif
|
||||
#ifndef DEFAULT_PORT
|
||||
#define DEFAULT_PORT 443
|
||||
#endif
|
||||
#define CERT wolfssl_website_root_ca
|
||||
#define SIZEOF_CERT sizeof_wolfssl_website_root_ca
|
||||
static const char msg[] = "GET /index.html HTTP/1.1\r\n\r\n";
|
||||
#endif
|
||||
|
||||
/* Math: Normal (!USE_FAST_MATH) */
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
#define WC_RSA_BLINDING
|
||||
#define ECC_TIMING_RESISTANT
|
||||
|
||||
/* Enable options */
|
||||
#define HAVE_CHACHA
|
||||
#define HAVE_POLY1305
|
||||
#define HAVE_ECC
|
||||
#define HAVE_SUPPORTED_CURVES
|
||||
#define HAVE_TLS_EXTENSIONS
|
||||
#define HAVE_ONE_TIME_AUTH
|
||||
#define HAVE_TRUNCATED_HMAC
|
||||
#define HAVE_EXTENDED_MASTER
|
||||
#define HAVE_ALPN
|
||||
#define HAVE_SNI
|
||||
#define HAVE_OCSP
|
||||
#define HAVE_AESGCM
|
||||
|
||||
/* Disable options */
|
||||
#define NO_PWDBASED
|
||||
#define NO_DSA
|
||||
#define NO_DES3
|
||||
#define NO_RC4
|
||||
#define NO_MD4
|
||||
|
||||
/* Benchmark / Testing */
|
||||
#define BENCH_EMBEDDED
|
||||
#define USE_CERT_BUFFERS_2048
|
||||
#define USE_CERT_BUFFERS_256
|
||||
|
||||
/* OS */
|
||||
#define SINGLE_THREADED
|
||||
|
||||
/* Filesystem */
|
||||
#define NO_FILESYSTEM
|
||||
|
||||
/* Debug */
|
||||
#include <applibs/log.h>
|
||||
#define printf Log_Debug
|
||||
#define WOLFIO_DEBUG
|
||||
|
||||
#define NO_MAIN_DRIVER
|
||||
|
||||
#endif /* _USER_SETTINGS_H_ */
|
||||
3
IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/.gitignore
vendored
Normal file
3
IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
# Ignore output directories
|
||||
/out/
|
||||
/install/
|
||||
58
IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/CMakeLists.txt
Normal file
58
IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/CMakeLists.txt
Normal file
@@ -0,0 +1,58 @@
|
||||
# CMakeList.txt
|
||||
#
|
||||
# Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
#
|
||||
# This file is part of wolfSSL. (formerly known as CyaSSL)
|
||||
#
|
||||
# Usage:
|
||||
# In MSVS 2019 with Azure Sphere plugin installed choose option
|
||||
# "Open Local Folder" and browse to wolfssl-root/IDE/MSVS-2019-AZSPHERE"
|
||||
# highlight wolfssl_new_azsphere and select "Open"
|
||||
#
|
||||
# To build:
|
||||
# go to MSVS menu option "Build" and select "Build All"
|
||||
#
|
||||
# See https://docs.microsoft.com/en-us/azure-sphere/install/overview for how
|
||||
# to get started with an Azure sphere device. Once you have completed the step
|
||||
# to build/flash and run the Blinky example you will be ready to build/flash
|
||||
# and run this example!
|
||||
|
||||
cmake_minimum_required (VERSION 3.4.1)
|
||||
|
||||
project (wolfssl_new_azsphere C)
|
||||
|
||||
azsphere_configure_tools(TOOLS_REVISION "22.02")
|
||||
azsphere_configure_api(TARGET_API_SET "12")
|
||||
|
||||
# add wolfSSL preprocessor directives
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DWOLFSSL_USER_SETTINGS -Wno-conversion -Wno-sign-conversion")
|
||||
|
||||
# add a shared object for SSL/TLS and CRYPTO
|
||||
set( SSL_SRC_DIR "../../../src" )
|
||||
set( CRYPTO_SRC_DIR "../../../wolfcrypt/src" )
|
||||
set( INCLUDE_DIR "../../.." )
|
||||
aux_source_directory( ${SSL_SRC_DIR} SSL_SOURCES )
|
||||
list( REMOVE_ITEM SSL_SOURCES ../../../src/bio.c )
|
||||
list( REMOVE_ITEM SSL_SOURCES ../../../src/conf.c )
|
||||
list( REMOVE_ITEM SSL_SOURCES ../../../src/x509.c )
|
||||
list( REMOVE_ITEM SSL_SOURCES ../../../src/x509_str.c )
|
||||
list( REMOVE_ITEM SSL_SOURCES ../../../src/pk.c )
|
||||
aux_source_directory( ${CRYPTO_SRC_DIR} CRYPTO_SOURCES )
|
||||
list( REMOVE_ITEM CRYPTO_SOURCES ../../../wolfcrypt/src/evp.c )
|
||||
list( REMOVE_ITEM CRYPTO_SOURCES ../../../wolfcrypt/src/misc.c )
|
||||
add_library( wolfssl STATIC ${SSL_SOURCES} ${CRYPTO_SOURCES} )
|
||||
|
||||
# Create executable that uses library
|
||||
set( SERVER_APP_DIR "../server" )
|
||||
set( CLIENT_APP_DIR "../client" )
|
||||
set( USER_SETTINGS_DIR ".." )
|
||||
set( APP_INCLUDE_DIRS ${SERVER_APP_DIR} ${CLIENT_APP_DIR} ${USER_SETTINGS_DIR} )
|
||||
|
||||
add_executable (${PROJECT_NAME} main.c ${SERVER_APP_DIR}/server.c ${CLIENT_APP_DIR}/client.c )
|
||||
target_link_libraries (${PROJECT_NAME} applibs pthread gcc_s c wolfssl)
|
||||
include_directories( ${INCLUDE_DIR} ${APP_INCLUDE_DIRS})
|
||||
|
||||
# azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")
|
||||
azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/seeed_mt3620_mdb" TARGET_DEFINITION "template_appliance.json")
|
||||
|
||||
azsphere_target_add_image_package(${PROJECT_NAME})
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"environments": [
|
||||
{
|
||||
"environment": "AzureSphere"
|
||||
}
|
||||
],
|
||||
"configurations": [
|
||||
{
|
||||
"name": "ARM-Debug",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Debug",
|
||||
"inheritEnvironments": [
|
||||
"AzureSphere"
|
||||
],
|
||||
"buildRoot": "${projectDir}\\out\\${name}",
|
||||
"installRoot": "${projectDir}\\out\\${name}",
|
||||
"cmakeToolchain": "${env.AzureSphereDefaultSDKDir}CMakeFiles\\AzureSphereToolchain.cmake",
|
||||
"buildCommandArgs": "-v",
|
||||
"ctestCommandArgs": "",
|
||||
"variables": [
|
||||
{
|
||||
"name": "AZURE_SPHERE_TARGET_API_SET",
|
||||
"value": "latest-lts"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ARM-Release",
|
||||
"generator": "Ninja",
|
||||
"configurationType": "Release",
|
||||
"inheritEnvironments": [
|
||||
"AzureSphere"
|
||||
],
|
||||
"buildRoot": "${projectDir}\\out\\${name}",
|
||||
"installRoot": "${projectDir}\\out\\${name}",
|
||||
"cmakeToolchain": "${env.AzureSphereDefaultSDKDir}CMakeFiles\\AzureSphereToolchain.cmake",
|
||||
"buildCommandArgs": "-v",
|
||||
"ctestCommandArgs": "",
|
||||
"variables": [
|
||||
{
|
||||
"name": "AZURE_SPHERE_TARGET_API_SET",
|
||||
"value": "latest-lts"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
/* template_appliance.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
* wolfSSL 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.
|
||||
*
|
||||
* wolfSSL 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-1335, USA
|
||||
*/
|
||||
|
||||
/* This file maps the Avnet MT3620 Starter Kit (SK)
|
||||
* to the 'template appliance' abstraction used by the templates.
|
||||
* Some peripherals are on-board, while other peripherals must be
|
||||
* attached externally (conditionally).
|
||||
* See https://aka.ms/AzureSphereHardwareDefinitions for more
|
||||
* information on how to use hardware abstractions .
|
||||
*/
|
||||
|
||||
|
||||
#pragma once
|
||||
#include "avnet_mt3620_sk.h"
|
||||
|
||||
/* MT3620 SK: wolfssl azsphere CI app */
|
||||
#define WOLF_AZSPHERE AVNET_MT3620_SK_USER_LED_RED
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"Metadata": {
|
||||
"Type": "Azure Sphere Hardware Definition",
|
||||
"Version": 1
|
||||
},
|
||||
"Description":
|
||||
{
|
||||
"Name": "Template hardware abstraction for Avnet MT3620 SK",
|
||||
"MainCoreHeaderFileTopContent": [
|
||||
"/* Copyright (C) 2006-2022 wolfSSL Inc.",
|
||||
" * This file is part of wolfSSL.",
|
||||
" *",
|
||||
" * wolfSSL 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.",
|
||||
" *",
|
||||
" * wolfSSL 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-1335, USA",
|
||||
" */",
|
||||
|
||||
"/* This file maps the Avnet MT3620 Starter Kit (SK)",
|
||||
" * to the 'template appliance' abstraction used by the templates.",
|
||||
" * Some peripherals are on-board, while other peripherals must be",
|
||||
" * attached externally (conditionally).",
|
||||
" * See https://aka.ms/AzureSphereHardwareDefinitions for more",
|
||||
" * information on how to use hardware abstractions .",
|
||||
" */"
|
||||
]
|
||||
},
|
||||
"Imports" : [ {"Path": "avnet_mt3620_sk.json"} ],
|
||||
"Peripherals": [
|
||||
{"Name": "WOLF_AZSPHERE", "Type": "Gpio", "Mapping": "AVNET_MT3620_SK_USER_LED_RED", "Comment": "MT3620 SK: User LED."}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
/* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
* wolfSSL 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.
|
||||
*
|
||||
* wolfSSL 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-1335, USA
|
||||
*/
|
||||
|
||||
/* This file maps the MT3620 reference development board (RDB)
|
||||
* to the 'template appliance' abstraction used by the templates.
|
||||
* Some peripherals are on-board, while other peripherals must be
|
||||
* attached externally (conditionally).
|
||||
* See https://aka.ms/AzureSphereHardwareDefinitions for more
|
||||
* information on how to use hardware abstractions .
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "mt3620_rdb.h"
|
||||
|
||||
/* MT3620 SK: wolfssl azsphere CI app */
|
||||
#define WOLF_AZSPHERE MT3620_RDB_LED1_RED
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"Metadata": {
|
||||
"Type": "Azure Sphere Hardware Definition",
|
||||
"Version": 1
|
||||
},
|
||||
"Description":
|
||||
{
|
||||
"Name": "Template hardware abstraction for MT3620 RDB",
|
||||
"MainCoreHeaderFileTopContent": [
|
||||
"/* Copyright (C) 2006-2022 wolfSSL Inc.",
|
||||
" * This file is part of wolfSSL.",
|
||||
" *",
|
||||
" * wolfSSL 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.",
|
||||
" *",
|
||||
" * wolfSSL 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-1335, USA",
|
||||
" */",
|
||||
|
||||
"/* This file maps the MT3620 reference development board (RDB)",
|
||||
" * to the 'template appliance' abstraction used by the templates.",
|
||||
" * Some peripherals are on-board, while other peripherals must be",
|
||||
" * attached externally (conditionally).",
|
||||
" * See https://aka.ms/AzureSphereHardwareDefinitions for more",
|
||||
" * information on how to use hardware abstractions .",
|
||||
" */"
|
||||
]
|
||||
},
|
||||
"Imports" : [ {"Path": "mt3620_rdb.json"} ],
|
||||
"Peripherals": [
|
||||
{"Name": "WOLF_AZSPHERE", "Type": "Gpio", "Mapping": "MT3620_RDB_LED1_RED", "Comment": "MT3620 RDB: LED 1 (red channel)"}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/* template_appliance.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
* wolfSSL 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.
|
||||
*
|
||||
* wolfSSL 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-1335, USA
|
||||
*/
|
||||
|
||||
/* This file maps the Seeed MT3620 Mini Development Board (MDB)
|
||||
* to the 'template appliance' abstraction used by the templates.
|
||||
* Some peripherals are on-board, while other peripherals must be
|
||||
* attached externally (conditionally).
|
||||
* See https://aka.ms/AzureSphereHardwareDefinitions for more
|
||||
* information on how to use hardware abstractions .
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "seeed_mt3620_mdb.h"
|
||||
|
||||
/* MT3620 SK: wolfssl azsphere CI app */
|
||||
#define WOLF_AZSPHERE SEEED_MT3620_MDB_USER_LED
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"Metadata": {
|
||||
"Type": "Azure Sphere Hardware Definition",
|
||||
"Version": 1
|
||||
},
|
||||
"Description":
|
||||
{
|
||||
"Name": "Template hardware abstraction for Seeed MT3620 MDB",
|
||||
"MainCoreHeaderFileTopContent": [
|
||||
"/* Copyright (C) 2006-2022 wolfSSL Inc.",
|
||||
" * This file is part of wolfSSL.",
|
||||
" *",
|
||||
" * wolfSSL 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.",
|
||||
" *",
|
||||
" * wolfSSL 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-1335, USA",
|
||||
" */",
|
||||
|
||||
"/* This file maps the Seeed MT3620 Mini Development Board (MDB)",
|
||||
" * to the 'template appliance' abstraction used by the templates.",
|
||||
" * Some peripherals are on-board, while other peripherals must be",
|
||||
" * attached externally (conditionally).",
|
||||
" * See https://aka.ms/AzureSphereHardwareDefinitions for more",
|
||||
" * information on how to use hardware abstractions .",
|
||||
" */"
|
||||
]
|
||||
},
|
||||
"Imports" : [ {"Path": "seeed_mt3620_mdb.json"} ],
|
||||
"Peripherals": [
|
||||
{"Name": "WOLF_AZSPHERE", "Type": "Gpio", "Mapping": "SEEED_MT3620_MDB_USER_LED", "Comment": "MT3620 MDB: User LED."}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"SchemaVersion": 1,
|
||||
"Name": "wolfssl_new_azsphere",
|
||||
"ComponentId": "959b4478-a9a3-440a-b1e7-9bb0b1f1d357",
|
||||
"EntryPoint": "/bin/app",
|
||||
"CmdArgs": [],
|
||||
"Capabilities": {
|
||||
"Gpio": [ "$WOLF_AZSPHERE" ],
|
||||
"AllowedApplicationConnections": []
|
||||
},
|
||||
"ApplicationType": "Default"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
/// <summary>
|
||||
/// This identifier should be defined before including any of the networking-related header files.
|
||||
/// It indicates which version of the Wi-Fi data structures the application uses.
|
||||
/// </summary>
|
||||
#define NETWORKING_STRUCTS_VERSION 1
|
||||
|
||||
/// <summary>
|
||||
/// This identifier must be defined before including any of the Wi-Fi related header files.
|
||||
/// It indicates which version of the Wi-Fi data structures the application uses.
|
||||
/// </summary>
|
||||
#define WIFICONFIG_STRUCTS_VERSION 1
|
||||
|
||||
/// <summary>
|
||||
/// This identifier must be defined before including any of the UART-related header files.
|
||||
/// It indicates which version of the UART data structures the application uses.
|
||||
/// </summary>
|
||||
#define UART_STRUCTS_VERSION 1
|
||||
|
||||
/// <summary>
|
||||
/// This identifier must be defined before including any of the SPI-related header files.
|
||||
/// It indicates which version of the SPI data structures the application uses.
|
||||
/// </summary>
|
||||
#define SPI_STRUCTS_VERSION 1
|
||||
14
IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/launch.vs.json
Normal file
14
IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/launch.vs.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"version": "0.2.1",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "azurespheredbg",
|
||||
"name": "wolfssl_new_azsphere (HLCore)",
|
||||
"project": "CMakeLists.txt",
|
||||
"workingDirectory": "${workspaceRoot}",
|
||||
"applicationPath": "${debugInfo.target}",
|
||||
"imagePath": "${debugInfo.targetImage}",
|
||||
"partnerComponents": []
|
||||
}
|
||||
]
|
||||
}
|
||||
92
IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/main.c
Normal file
92
IDE/MSVS-2019-AZSPHERE/wolfssl_new_azsphere/main.c
Normal file
@@ -0,0 +1,92 @@
|
||||
/* main.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
* wolfSSL 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.
|
||||
*
|
||||
* wolfSSL 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-1335, USA
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
#include <applibs/log.h>
|
||||
#include <applibs/gpio.h>
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#ifndef WOLFSSL_USER_SETTINGS
|
||||
#error "user_settings.h not included"
|
||||
#endif
|
||||
#include <server.h>
|
||||
#include <client.h>
|
||||
|
||||
/*
|
||||
* The following #include imports a "template appliance" definition. This app
|
||||
* comes with multiple implementations of the template appliance, each in a
|
||||
* separate directory, which allow the code to run unchanged on different
|
||||
* hardware.
|
||||
*
|
||||
* By default, this app targets hardware that follows the MT3620-mini Reference
|
||||
* Development Board (MDB) specification, such as the MT3620-mini Dev Kit from
|
||||
* Seeed Studio.
|
||||
*
|
||||
* To target different hardware, you'll need to update CMakeLists.txt.
|
||||
* For example, to target the Avnet MT3620 Starter Kit, make this update:
|
||||
* azsphere_target_hardware_definition(${PROJECT_NAME}
|
||||
* TARGET_DIRECTORY "HardwareDefinitions/avnet_mt3620_sk"
|
||||
* TARGET_DEFINITION "template_appliance.json")
|
||||
*
|
||||
* See https://aka.ms/AzureSphereHardwareDefinitions for more details.
|
||||
*/
|
||||
#include <hw/template_appliance.h>
|
||||
|
||||
typedef enum {
|
||||
ExitCode_Success = 0,
|
||||
|
||||
ExitCode_Main_Led = 1
|
||||
} ExitCode;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
Log_Debug(
|
||||
"\nVisit https://github.com/Azure/azure-sphere-samples for other"
|
||||
" examples.\n");
|
||||
int ret;
|
||||
|
||||
int fd = GPIO_OpenAsOutput(WOLF_AZSPHERE, GPIO_OutputMode_PushPull, GPIO_Value_High);
|
||||
if (fd < 0) {
|
||||
Log_Debug(
|
||||
"Error opening GPIO: %s (%d). Check that app_manifest.json includes"
|
||||
" the GPIO used.\n",
|
||||
strerror(errno), errno);
|
||||
return ExitCode_Main_Led;
|
||||
}
|
||||
|
||||
const struct timespec sleepTime = {.tv_sec = 1, .tv_nsec = 0};
|
||||
|
||||
printf("Launching the server...\n");
|
||||
ret = azsphere_server_app();
|
||||
printf("ret azsphere_server_app = %d\n", ret);
|
||||
|
||||
/* if server exists continually blink the red LED indicating server needs
|
||||
* to be rebooted */
|
||||
while (true) {
|
||||
GPIO_SetValue(fd, GPIO_Value_Low);
|
||||
nanosleep(&sleepTime, NULL);
|
||||
GPIO_SetValue(fd, GPIO_Value_High);
|
||||
nanosleep(&sleepTime, NULL);
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,9 @@ LD = $(CC)
|
||||
INCLUDES += -I../../../ -I../../../wolfssl/wolfcrypt/port/caam/
|
||||
CCFLAGS += -O2 -Wall
|
||||
|
||||
# For debugging print outs build with WOLFSSL_CAAM_PRINT defined
|
||||
#CCFLAGS += -DWOLFSSL_CAAM_PRINT -O2 -Wall
|
||||
|
||||
SRCS = \
|
||||
../../../wolfcrypt/src/port/caam/caam_driver.c \
|
||||
../../../wolfcrypt/src/port/caam/caam_error.c \
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <wolfssl/wolfcrypt/wc_port.h>
|
||||
#include <wolfcrypt/benchmark/benchmark.h>
|
||||
#include <stdio.h>
|
||||
#include "hw.h" /* Needed for 'delay_us' prototype */
|
||||
|
||||
typedef struct func_args {
|
||||
int argc;
|
||||
|
||||
@@ -76,7 +76,7 @@ The wolfssl Project Summary is listed below and is relevant for every project.
|
||||
|Common General Use Mutexes|Enabled|
|
||||
|Common General Enable Backward Compatibility|Enabled|
|
||||
|Common Memory Allocation Support Dynamic Allocation|Enabled|
|
||||
|Common Memory Allocation Total Heap Size|increase depending on your environment<br> e.g. 0x20000|
|
||||
|Common Memory Allocation Total Heap Size|increase depending on your environment<br> e.g. 0x20000, <br> e.g. 0x30000 when using multi thread example|
|
||||
|
||||
+ Add `Heap 4` stack to sce_tst_thread from `New Stack` -> `RTOS` -> `FreeRTOS Heap 4`
|
||||
+ Add `FreeRTOS + TCP` stack to sce_tst_thread from `New Stack` -> `Networking` -> `FreeRTOS+TCP` and set properties
|
||||
@@ -158,6 +158,7 @@ static const byte ucIPAddress[4] = { 192, 168, 11, 241 };
|
||||
$ autogen.sh
|
||||
$ ./configure --enable-extended-master=no CFLAGS="-DWOLFSSL_STATIC_RSA -DHAVE_AES_CBC"
|
||||
```
|
||||
|
||||
Run peer wolfSSL server
|
||||
|
||||
RSA sign and verify use, launch server with the following option
|
||||
@@ -165,41 +166,154 @@ RSA sign and verify use, launch server with the following option
|
||||
$./examples/server/server -b -d -i
|
||||
```
|
||||
|
||||
You will see the following message on J-LinK RTT Viewer
|
||||
```
|
||||
cipher : AES128-SHA256
|
||||
Received: I hear you fa shizzle!
|
||||
|
||||
cipher : AES256-SHA256
|
||||
Received: I hear you fa shizzle!
|
||||
|
||||
cipher : ECDHE-RSA-AES128-SHA256
|
||||
Received: I hear you fa shizzle!
|
||||
|
||||
cipher : ECDHE-RSA-AES128-GCM-SHA256
|
||||
Received: I hear you fa shizzle!
|
||||
```
|
||||
|
||||
ECDSA sign and verify use, launch server with the following option
|
||||
```
|
||||
$./examples/server/server -b -d -c -i ./certs/server-ecc.pem -k ./certs/ecc-key.pem
|
||||
```
|
||||
|
||||
You will see the following message on J-LinK RTT Viewer
|
||||
```
|
||||
cipher : ECDHE-ECDSA-AES128-SHA256
|
||||
Received: I hear you fa shizzle!
|
||||
|
||||
cipher : ECDHE-ECDSA-AES128-GCM-SHA256
|
||||
Received: I hear you fa shizzle!
|
||||
```
|
||||
|
||||
5.) Run the example Client
|
||||
|
||||
You will see the following message on J-LinK RTT Viewer when using RSA sign and verify.
|
||||
```
|
||||
Start Client Example,
|
||||
Connecting to 192.168.11.xx
|
||||
|
||||
[wolfSSL_TLS_client_do(00)][00] Start to connect to the server.
|
||||
[wolfSSL_TLS_client_do(00)][00] Cipher : NULL
|
||||
[wolfSSL_TLS_client_do(00)][00] Received: I hear you fa shizzle!
|
||||
|
||||
[wolfSSL_TLS_client_do(01)][01] Start to connect to the server.
|
||||
[wolfSSL_TLS_client_do(01)][01] Cipher : ECDHE-RSA-AES128-GCM-SHA256
|
||||
[wolfSSL_TLS_client_do(01)][01] Received: I hear you fa shizzle!
|
||||
|
||||
[wolfSSL_TLS_client_do(02)][02] Start to connect to the server.
|
||||
[wolfSSL_TLS_client_do(02)][02] Cipher : ECDHE-RSA-AES256-SHA
|
||||
[wolfSSL_TLS_client_do(02)][02] Received: I hear you fa shizzle!
|
||||
|
||||
[wolfSSL_TLS_client_do(03)][03] Start to connect to the server.
|
||||
[wolfSSL_TLS_client_do(03)][03] Cipher : ECDHE-RSA-AES128-SHA256
|
||||
[wolfSSL_TLS_client_do(03)][03] Received: I hear you fa shizzle!
|
||||
|
||||
[wolfSSL_TLS_client_do(04)][04] Start to connect to the server.
|
||||
[wolfSSL_TLS_client_do(04)][04] Cipher : AES128-SHA256
|
||||
[wolfSSL_TLS_client_do(04)][04] Received: I hear you fa shizzle!
|
||||
|
||||
|
||||
End of Client Example
|
||||
```
|
||||
|
||||
You will see the following message on J-LinK RTT Viewer when using ECDSA sign and verify.
|
||||
```
|
||||
Start Client Example,
|
||||
Connecting to 192.168.11.xx
|
||||
|
||||
[wolfSSL_TLS_client_do(00)][00] Start to connect to the server.
|
||||
[wolfSSL_TLS_client_do(00)][00] Cipher : NULL
|
||||
[wolfSSL_TLS_client_do(00)][00] Received: I hear you fa shizzle!
|
||||
|
||||
[wolfSSL_TLS_client_do(01)][01] Start to connect to the server.
|
||||
[wolfSSL_TLS_client_do(01)][01] Cipher : ECDHE-ECDSA-AES128-GCM-SHA256
|
||||
[wolfSSL_TLS_client_do(01)][01] Received: I hear you fa shizzle!
|
||||
|
||||
[wolfSSL_TLS_client_do(02)][02] Start to connect to the server.
|
||||
[wolfSSL_TLS_client_do(02)][02] Cipher : ECDHE-ECDSA-AES256-SHA
|
||||
[wolfSSL_TLS_client_do(02)][02] Received: I hear you fa shizzle!
|
||||
|
||||
[wolfSSL_TLS_client_do(03)][03] Start to connect to the server.
|
||||
[wolfSSL_TLS_client_do(03)][03] Cipher : ECDHE-ECDSA-AES128-SHA256
|
||||
[wolfSSL_TLS_client_do(03)][03] Received: I hear you fa shizzle!
|
||||
|
||||
|
||||
End of Client Exampl
|
||||
```
|
||||
|
||||
**Note**\
|
||||
To run "RSA verify" client, enable "#define USE_CERT_BUFFERS_2048" in wolfssl_demo.h\
|
||||
To run "ECDSA verify" client, enable "#define USE_CERT_BUFFERS_256" in wolfssl_demo.h
|
||||
|
||||
|
||||
### Run Multi Client Session example
|
||||
1.) Enable TLS_CLIENT and TLS_MULTITHREAD_TEST definition in wolfssl_demo.h of test_RA6M4 projet
|
||||
|
||||
2.) Follow [Run Client](#run-client) instruction
|
||||
|
||||
3.) Prepare peer wolfssl server
|
||||
|
||||
RSA sign and verify use, launch server with the following option
|
||||
```
|
||||
$./examples/server/server -b -d -i -p 11111
|
||||
|
||||
Open another terminal and launch another server example
|
||||
$./examples/server/server -b -d -i -p 11112
|
||||
```
|
||||
|
||||
ECDSA sign and verify use, launch server with the following option
|
||||
```
|
||||
$./examples/server/server -b -d -c -i ./certs/server-ecc.pem -k ./certs/ecc-key.pem -p 11111
|
||||
|
||||
Open another terminal and launch another server example
|
||||
$./examples/server/server -b -d -c -i ./certs/server-ecc.pem -k ./certs/ecc-key.pem -p 11112
|
||||
```
|
||||
|
||||
4.) Run Multi Client Session Example
|
||||
You will see similar following message on J-LinK RTT Viewer when using ECDSA sign and verify.
|
||||
```
|
||||
Start Client Example,
|
||||
Connecting to 192.168.11.xx
|
||||
|
||||
clt_thd_taskA connecting to 11111 port
|
||||
clt_thd_taskB connecting to 11112 port
|
||||
[clt_thd_taskA][00] Ready to connect.
|
||||
[clt_thd_taskA][00] Start to connect to the server.
|
||||
[clt_thd_taskA][00] Cipher : ECDHE-RSA-AES128-GCM-SHA256
|
||||
[clt_thd_taskB][00] Ready to connect.
|
||||
[clt_thd_taskB][00] Start to connect to the server.
|
||||
[clt_thd_taskB][00] Cipher : ECDHE-RSA-AES128-SHA256
|
||||
[clt_thd_taskB][00] Received: I hear you fa shizzle!
|
||||
|
||||
[clt_thd_taskA][00] Received: I hear you fa shizzle!
|
||||
|
||||
clt_thd_taskA connecting to 11111 port
|
||||
clt_thd_taskB connecting to 11112 port
|
||||
[clt_thd_taskA][00] Ready to connect.
|
||||
[clt_thd_taskA][00] Start to connect to the server.
|
||||
[clt_thd_taskA][00] Cipher : AES128-SHA256
|
||||
[clt_thd_taskB][00] Ready to connect.
|
||||
[clt_thd_taskB][00] Start to connect to the server.
|
||||
[clt_thd_taskB][00] Cipher : AES256-SHA256
|
||||
[clt_thd_taskA][00] Received: I hear you fa shizzle!
|
||||
|
||||
[clt_thd_taskB][00] Received: I hear you fa shizzle!
|
||||
|
||||
|
||||
End of Client Example
|
||||
```
|
||||
|
||||
You will see similar following message on J-LinK RTT Viewer when using ECDSA sign and verify.
|
||||
```
|
||||
Start Client Example,
|
||||
Connecting to 192.168.11.xx
|
||||
|
||||
clt_thd_taskA connecting to 11111 port
|
||||
clt_thd_taskB connecting to 11112 port
|
||||
[clt_thd_taskA][00] Ready to connect.
|
||||
[clt_thd_taskA][00] Start to connect to the server.
|
||||
[clt_thd_taskA][00] Cipher : ECDHE-ECDSA-AES128-GCM-SHA256
|
||||
[clt_thd_taskB][00] Ready to connect.
|
||||
[clt_thd_taskB][00] Start to connect to the server.
|
||||
[clt_thd_taskB][00] Cipher : ECDHE-ECDSA-AES128-SHA256
|
||||
[clt_thd_taskB][00] Received: I hear you fa shizzle!
|
||||
|
||||
[clt_thd_taskA][00] Received: I hear you fa shizzle!
|
||||
|
||||
|
||||
End of Client Example
|
||||
```
|
||||
|
||||
**Note**\
|
||||
Multi Client session use case is only able to run threads that all use either SCE cipher suite or SW cipher suite.
|
||||
The example program runs two threads that use SCE cipher suite.
|
||||
|
||||
## Run Crypt test and Benchmark
|
||||
|
||||
1.) Enable CRYPT_TEST and/or BENCHMARK definition in wolfssl_demo.h
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wolfssl_demo.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -35,6 +35,10 @@
|
||||
#define DIRECT_KEY_ADDRESS_256 FLASH_HP_DF_BLOCK_1
|
||||
#define DIRECT_KEY_ADDRESS_128 FLASH_HP_DF_BLOCK_2
|
||||
|
||||
/* Client connects to the server with these details. */
|
||||
#define SERVER_IP "192.168.11.49"
|
||||
#define DEFAULT_PORT 11111
|
||||
|
||||
/* Enable wolfcrypt test */
|
||||
/* can be enabled with benchmark test */
|
||||
/*#define CRYPT_TEST*/
|
||||
@@ -46,11 +50,12 @@
|
||||
/* Enable TLS client */
|
||||
/* cannot enable with CRYPT_TEST or BENCHMARK */
|
||||
#define TLS_CLIENT
|
||||
/* Specify cipher suites that are supported by SCE
|
||||
* ClientHello specifies the cipher suite to communicate peer Server
|
||||
* so that TLS handshake uses SCE protect mode
|
||||
*/
|
||||
#define TEST_CIPHER_SPECIFIED
|
||||
|
||||
/* use multi-thread example */
|
||||
/*#define TLS_MULTITHREAD_TEST*/
|
||||
#if defined(TLS_MULTITHREAD_TEST)
|
||||
#define THREAD_STACK_SIZE (5 * 1024)
|
||||
#endif
|
||||
|
||||
/* Use RSA certificates */
|
||||
#define USE_CERT_BUFFERS_2048
|
||||
@@ -61,8 +66,29 @@
|
||||
#error please set either macro USE_CERT_BUFFERS_2048 or USE_CERT_BUFFERS_256
|
||||
#endif
|
||||
|
||||
typedef struct tagTestInfo
|
||||
{
|
||||
int id;
|
||||
int port;
|
||||
char name[32];
|
||||
const char* cipher;
|
||||
WOLFSSL_CTX* ctx;
|
||||
wolfSSL_Logging_cb log_f;
|
||||
#if defined(TLS_MULTITHREAD_TEST)
|
||||
SemaphoreHandle_t xBinarySemaphore;
|
||||
#endif
|
||||
} TestInfo;
|
||||
|
||||
void sce_test();
|
||||
void TCPInit();
|
||||
void wolfSSL_TLS_client_init();
|
||||
void wolfSSL_TLS_client();
|
||||
void wolfSSL_TLS_client_do(void *pvParam);
|
||||
void wolfSSL_TLS_cleanup();
|
||||
extern WOLFSSL_CTX *client_ctx;
|
||||
|
||||
#ifdef TLS_MULTITHREAD_TEST
|
||||
extern xSemaphoreHandle exit_semaph;
|
||||
#endif
|
||||
|
||||
static void util_Cleanup(xSocket_t xSock, WOLFSSL_CTX *ctx, WOLFSSL *ssl) {
|
||||
printf("Cleaning up socket and wolfSSL objects.\n");
|
||||
|
||||
@@ -10,9 +10,10 @@ EXTRA_DIST+= IDE/Renesas/e2studio/RA6M4/test/.project
|
||||
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M4/test/test_RA6M4Debug.launch
|
||||
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M4/test/src/test_main.c
|
||||
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M4/test/src/wolf_client.c
|
||||
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M4/test/src/wolfssl_sce_unit_test.c
|
||||
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M4/test/src/SEGGER_RTT/myprint.c
|
||||
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M4/test/src/common/.gitignore
|
||||
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M4/test/key_data/key_data_sce.c
|
||||
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M4/test/key_data/key_data.h
|
||||
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M4/common/wolfssl_demo.h
|
||||
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M4/common/user_settings.h
|
||||
EXTRA_DIST+= IDE/Renesas/e2studio/RA6M4/common/user_settings.h
|
||||
@@ -1,6 +1,6 @@
|
||||
/* myprintf.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -22,6 +22,8 @@
|
||||
|
||||
#define SEGGER_INDEX (0)
|
||||
|
||||
int myprintf(const char * sFormat, ...);
|
||||
|
||||
int myprintf(const char * sFormat, ...)
|
||||
{
|
||||
int r;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* test_main.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -19,15 +19,20 @@
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||
*/
|
||||
|
||||
|
||||
#include "stdio.h"
|
||||
#include "stdint.h"
|
||||
#include "wolfssl_demo.h"
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#include <wolfssl/wolfcrypt/types.h>
|
||||
|
||||
#if defined(WOLFSSL_RENESAS_SCEPROTECT)
|
||||
#include <wolfssl/wolfcrypt/port/Renesas/renesas-sce-crypt.h>
|
||||
User_SCEPKCbInfo guser_PKCbInfo;
|
||||
#if defined(TLS_MULTITHREAD_TEST)
|
||||
User_SCEPKCbInfo guser_PKCbInfo_taskA;
|
||||
User_SCEPKCbInfo guser_PKCbInfo_taskB;
|
||||
#else
|
||||
User_SCEPKCbInfo guser_PKCbInfo;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <wolfssl_demo.h>
|
||||
@@ -40,6 +45,17 @@ void abort(void);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(SCE_CRYPT_UNIT_TEST)
|
||||
int sce_crypt_test();
|
||||
int sce_crypt_sha256_multitest();
|
||||
int sce_crypt_AesCbc_multitest();
|
||||
int sce_crypt_AesGcm_multitest();
|
||||
int sce_crypt_Sha_AesCbcGcm_multitest();
|
||||
void tskSha256_Test1(void *pvParam);
|
||||
#endif
|
||||
|
||||
void R_BSP_WarmStart(bsp_warm_start_event_t event);
|
||||
|
||||
/* the function is called just before main() to set up pins */
|
||||
/* this needs to be called to setup IO Port */
|
||||
void R_BSP_WarmStart (bsp_warm_start_event_t event)
|
||||
@@ -52,7 +68,7 @@ void R_BSP_WarmStart (bsp_warm_start_event_t event)
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(TLS_CLIENT) || defined(TLS_SERVER) || defined(EXTRA_SCE_TSIP_TEST)
|
||||
#if defined(TLS_CLIENT)
|
||||
|
||||
extern const st_user_key_block_data_t g_key_block_data;
|
||||
|
||||
@@ -63,7 +79,7 @@ static int SetScetlsKey()
|
||||
{
|
||||
#if defined(WOLFSSL_RENESAS_SCEPROTECT)
|
||||
|
||||
#if defined(TLS_CLIENT) || defined(EXTRA_SCE_TSIP_TEST)
|
||||
#if defined(TLS_CLIENT)
|
||||
|
||||
#if defined(USE_CERT_BUFFERS_256)
|
||||
wc_sce_inform_cert_sign((const byte *)ca_ecc_cert_der_sign);
|
||||
@@ -76,9 +92,6 @@ static int SetScetlsKey()
|
||||
(byte*)&g_key_block_data.iv,
|
||||
(byte*)&g_key_block_data.encrypted_user_rsa2048_ne_key,
|
||||
encrypted_user_key_type);
|
||||
#if defined(WOLFSSL_RENESAS_SCEPROTECT_ECC)
|
||||
guser_PKCbInfo.user_key_id = 0; /* not use user key id */
|
||||
#endif
|
||||
|
||||
#elif defined(TLS_SERVER)
|
||||
|
||||
@@ -106,12 +119,57 @@ typedef struct func_args {
|
||||
void wolfcrypt_test(func_args args);
|
||||
int benchmark_test(void *args);
|
||||
|
||||
#ifdef TLS_MULTITHREAD_TEST
|
||||
static void my_Logging_cb(const int logLevel, const char *const logMessage)
|
||||
{
|
||||
(void)logLevel;
|
||||
printf("custom-log: %s\n", logMessage);
|
||||
}
|
||||
#endif
|
||||
|
||||
void sce_test(void)
|
||||
{
|
||||
|
||||
#if defined(CRYPT_TEST) || defined(BENCHMARK)
|
||||
#if defined(CRYPT_TEST)
|
||||
#if defined(SCE_CRYPT_UNIT_TEST) && defined(WOLFSSL_RENESAS_SCEPROTECT)
|
||||
int ret = 0;
|
||||
BaseType_t xRet;
|
||||
|
||||
if ((ret = wolfCrypt_Init()) != 0) {
|
||||
printf("wolfCrypt_Init failed %d\n", ret);
|
||||
}
|
||||
printf("Start wolf sce crypt Test\n");
|
||||
|
||||
printf(" \n");
|
||||
printf(" simple crypt test by using SCE\n");
|
||||
sce_crypt_test();
|
||||
|
||||
printf(" \n");
|
||||
printf(" multi sha thread test\n");
|
||||
|
||||
sce_crypt_sha256_multitest();
|
||||
|
||||
printf(" \n");
|
||||
printf(" multi aes cbc thread test\n");
|
||||
|
||||
sce_crypt_AesCbc_multitest();
|
||||
|
||||
printf(" \n");
|
||||
printf(" multi aes gcm thread test\n");
|
||||
|
||||
sce_crypt_AesGcm_multitest();
|
||||
|
||||
printf(" \n");
|
||||
printf(" multi sha aescbc aesgcm thread test\n");
|
||||
sce_crypt_Sha_AesCbcGcm_multitest();
|
||||
|
||||
printf(" \n");
|
||||
printf("End wolf sce crypt Test\n");
|
||||
|
||||
if ((ret = wolfCrypt_Cleanup()) != 0) {
|
||||
printf("wolfCrypt_Cleanup failed %d\n", ret);
|
||||
}
|
||||
|
||||
#elif defined(CRYPT_TEST)
|
||||
int ret;
|
||||
func_args args = { 0 };
|
||||
|
||||
@@ -126,79 +184,167 @@ void sce_test(void)
|
||||
if ((ret = wolfCrypt_Cleanup()) != 0) {
|
||||
printf("wolfCrypt_Cleanup failed %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
#if defined(BENCHMARK)
|
||||
|
||||
#elif defined(BENCHMARK)
|
||||
#include "hal_data.h"
|
||||
#include "r_sce.h"
|
||||
|
||||
printf("Prepare Installed key\n");
|
||||
#if defined(WOLFSSL_RENESAS_SCEPROTECT) && defined(SCEKEY_INSTALLED)
|
||||
/* aes 256 */
|
||||
memcpy(guser_PKCbInfo.sce_wrapped_key_aes256.value,
|
||||
(uint32_t *)DIRECT_KEY_ADDRESS_256, HW_SCE_AES256_KEY_INDEX_WORD_SIZE*4);
|
||||
guser_PKCbInfo.sce_wrapped_key_aes256.type = SCE_KEY_INDEX_TYPE_AES256;
|
||||
guser_PKCbInfo.aes256_installedkey_set = 1;
|
||||
/* aes 128 */
|
||||
memcpy(guser_PKCbInfo.sce_wrapped_key_aes128.value,
|
||||
(uint32_t *)DIRECT_KEY_ADDRESS_128, HW_SCE_AES128_KEY_INDEX_WORD_SIZE*4);
|
||||
|
||||
#if defined(WOLFSSL_RENESAS_SCEPROTECT) && defined(SCEKEY_INSTALLED)
|
||||
|
||||
/* aes 256 */
|
||||
memcpy(guser_PKCbInfo.sce_wrapped_key_aes256.value,
|
||||
(uint32_t *)DIRECT_KEY_ADDRESS_256,
|
||||
HW_SCE_AES256_KEY_INDEX_WORD_SIZE*4);
|
||||
guser_PKCbInfo.sce_wrapped_key_aes256.type = SCE_KEY_INDEX_TYPE_AES256;
|
||||
guser_PKCbInfo.aes256_installedkey_set = 1;
|
||||
|
||||
/* aes 128 */
|
||||
memcpy(guser_PKCbInfo.sce_wrapped_key_aes128.value,
|
||||
(uint32_t *)DIRECT_KEY_ADDRESS_128,
|
||||
HW_SCE_AES128_KEY_INDEX_WORD_SIZE*4);
|
||||
|
||||
guser_PKCbInfo.sce_wrapped_key_aes128.type = SCE_KEY_INDEX_TYPE_AES128;
|
||||
guser_PKCbInfo.aes128_installedkey_set = 1;
|
||||
#endif
|
||||
guser_PKCbInfo.aes128_installedkey_set = 1;
|
||||
|
||||
#endif
|
||||
printf("Start wolfCrypt Benchmark\n");
|
||||
benchmark_test(NULL);
|
||||
printf("End wolfCrypt Benchmark\n");
|
||||
#endif
|
||||
|
||||
#elif defined(TLS_CLIENT)
|
||||
#include "hal_data.h"
|
||||
#include "r_sce.h"
|
||||
|
||||
#if defined(USE_CERT_BUFFERS_256)
|
||||
#if defined(TEST_CIPHER_SPECIFIED)
|
||||
const char* cipherlist[] = {
|
||||
"ECDHE-ECDSA-AES128-SHA256",
|
||||
"ECDHE-ECDSA-AES128-GCM-SHA256"
|
||||
};
|
||||
const int cipherlist_sz = 2;
|
||||
#else
|
||||
const char* cipherlist[] = {
|
||||
NULL
|
||||
};
|
||||
const int cipherlist_sz = 1;
|
||||
#endif /* TEST_CIPHER_SPECIFIED */
|
||||
|
||||
#else
|
||||
#if defined(TEST_CIPHER_SPECIFIED)
|
||||
const char* cipherlist[] = {
|
||||
"AES128-SHA256",
|
||||
"AES256-SHA256",
|
||||
"ECDHE-RSA-AES128-SHA256",
|
||||
"ECDHE-RSA-AES128-GCM-SHA256"
|
||||
};
|
||||
const int cipherlist_sz = 4;
|
||||
#else
|
||||
const char* cipherlist[] = {
|
||||
NULL
|
||||
};
|
||||
const int cipherlist_sz = 1;
|
||||
#endif /* TEST_CIPHER_SPECIFIED */
|
||||
#endif
|
||||
#if defined(USE_CERT_BUFFERS_256)
|
||||
#if !defined(TLS_MULTITHREAD_TEST)
|
||||
const char* cipherlist[] = {
|
||||
NULL,
|
||||
"ECDHE-ECDSA-AES128-GCM-SHA256",
|
||||
"ECDHE-ECDSA-AES256-SHA", /* sw only */
|
||||
"ECDHE-ECDSA-AES128-SHA256"
|
||||
};
|
||||
const int cipherlist_sz = 3;
|
||||
TestInfo info[cipherlist_sz];
|
||||
#else
|
||||
const char* cipherlist[] = {
|
||||
"ECDHE-ECDSA-AES128-GCM-SHA256",
|
||||
"ECDHE-ECDSA-AES128-SHA256"
|
||||
};
|
||||
const int cipherlist_sz = 2;
|
||||
TestInfo info[cipherlist_sz];
|
||||
#endif
|
||||
#else
|
||||
#if !defined(TLS_MULTITHREAD_TEST)
|
||||
const char* cipherlist[] = {
|
||||
NULL,
|
||||
"ECDHE-RSA-AES128-GCM-SHA256",
|
||||
"ECDHE-RSA-AES256-SHA", /* sw only */
|
||||
"ECDHE-RSA-AES128-SHA256",
|
||||
"AES128-SHA256",
|
||||
"AES256-SHA256",
|
||||
};
|
||||
const int cipherlist_sz = 6;
|
||||
TestInfo info[cipherlist_sz];
|
||||
#else
|
||||
const char* cipherlist[] = {
|
||||
"ECDHE-RSA-AES128-GCM-SHA256",
|
||||
"ECDHE-RSA-AES128-SHA256",
|
||||
"AES128-SHA256",
|
||||
"AES256-SHA256",
|
||||
};
|
||||
const int cipherlist_sz = 4;
|
||||
TestInfo info[cipherlist_sz];
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef TLS_MULTITHREAD_TEST
|
||||
BaseType_t xReturned;
|
||||
BaseType_t xHigherPriorityTaskWoken;
|
||||
xHigherPriorityTaskWoken = pdFALSE;
|
||||
int j = 0;
|
||||
#endif
|
||||
int i = 0;
|
||||
|
||||
printf("\n Start Client Example, ");
|
||||
printf("\n Connecting to %s\n\n", SERVER_IP);
|
||||
|
||||
SetScetlsKey();
|
||||
|
||||
|
||||
TCPInit();
|
||||
|
||||
do {
|
||||
if(cipherlist_sz > 0 && cipherlist[i] != NULL )
|
||||
printf("cipher : %s\n", cipherlist[i]);
|
||||
#ifdef TLS_MULTITHREAD_TEST
|
||||
|
||||
wolfSSL_TLS_client_init(cipherlist[i]);
|
||||
wolfSSL_TLS_client();
|
||||
wolfSSL_TLS_client_init();
|
||||
|
||||
exit_semaph = xSemaphoreCreateCounting(cipherlist_sz, 0);
|
||||
|
||||
do {
|
||||
|
||||
for(j = i; j < (i+2); j++) {
|
||||
info[j].port = DEFAULT_PORT + (j%2);
|
||||
info[j].cipher = cipherlist[j];
|
||||
info[j].ctx = client_ctx;
|
||||
info[j].xBinarySemaphore = xSemaphoreCreateBinary();
|
||||
info[j].log_f = my_Logging_cb;
|
||||
|
||||
memset(info[j].name, 0, sizeof(info[j].name));
|
||||
sprintf(info[j].name, "clt_thd_%s", ((j%2) == 0) ?
|
||||
"taskA" : "taskB");
|
||||
|
||||
printf(" %s connecting to %d port\n", info[j].name, info[j].port);
|
||||
|
||||
xReturned = xTaskCreate(wolfSSL_TLS_client_do, info[j].name,
|
||||
THREAD_STACK_SIZE, &info[j], 2, NULL);
|
||||
if (xReturned != pdPASS) {
|
||||
printf("Failed to create task\n");
|
||||
}
|
||||
}
|
||||
|
||||
for(j = i; j < (i+2); j++) {
|
||||
xSemaphoreGiveFromISR(info[j].xBinarySemaphore,
|
||||
&xHigherPriorityTaskWoken);
|
||||
}
|
||||
|
||||
/* check if all tasks are completed */
|
||||
for(j = i; j < (i+2); j++) {
|
||||
if(!xSemaphoreTake(exit_semaph, portMAX_DELAY)) {
|
||||
printf("exit semaphore not released by test task");
|
||||
}
|
||||
}
|
||||
|
||||
i+=2;
|
||||
|
||||
} while (i < cipherlist_sz);
|
||||
|
||||
vSemaphoreDelete(exit_semaph);
|
||||
|
||||
#else
|
||||
|
||||
wolfSSL_TLS_client_init();
|
||||
|
||||
do {
|
||||
|
||||
info[i].port = DEFAULT_PORT;
|
||||
info[i].cipher = cipherlist[i];
|
||||
info[i].ctx = client_ctx;
|
||||
info[i].id = i;
|
||||
|
||||
memset(info[i].name, 0, sizeof(info[i].name));
|
||||
sprintf(info[i].name, "wolfSSL_TLS_client_do(%02d)", i);
|
||||
|
||||
wolfSSL_TLS_client_do(&info[i]);
|
||||
|
||||
i++;
|
||||
} while (i < cipherlist_sz);
|
||||
|
||||
#endif /* SCE_MULTITHREAD_TEST */
|
||||
|
||||
printf("\n End of Client Example");
|
||||
|
||||
wolfSSL_TLS_cleanup();
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wolf_client.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -29,22 +29,42 @@
|
||||
#include "wolfssl/certs_test.h"
|
||||
|
||||
uint32_t g_encrypted_root_public_key[140];
|
||||
static WOLFSSL_CTX *client_ctx;
|
||||
WOLFSSL_CTX *client_ctx = NULL;
|
||||
|
||||
extern uint8_t g_ether0_mac_address[6];
|
||||
typedef struct user_EccPKCbInfo;
|
||||
extern struct user_PKCbInfo guser_PKCbInfo;
|
||||
static const byte ucIPAddress[4] = { 192, 168, 11, 241 };
|
||||
static const byte ucNetMask[4] = { 255, 255, 255, 0 };
|
||||
static const byte ucGatewayAddress[4] = { 192, 168, 11, 1 };
|
||||
static const byte ucDNSServerAddress[4] = { 192, 168, 11, 1 };
|
||||
|
||||
/* Client connects to the server with these details. */
|
||||
#define SERVER_IP "192.168.11.40"
|
||||
#define DEFAULT_PORT 11111
|
||||
|
||||
#define FR_SOCKET_SUCCESS 0
|
||||
|
||||
#ifdef TLS_MULTITHREAD_TEST
|
||||
xSemaphoreHandle exit_semaph;
|
||||
extern User_SCEPKCbInfo guser_PKCbInfo_taskA;
|
||||
extern User_SCEPKCbInfo guser_PKCbInfo_taskB;
|
||||
#else
|
||||
extern User_SCEPKCbInfo guser_PKCbInfo;
|
||||
#endif
|
||||
|
||||
int SEGGER_RTT_vprintf(unsigned BufferIndex, const char * sFormat, va_list * pParamList);
|
||||
|
||||
static int msg(const char* pname, int l,
|
||||
const char * sFormat, ...)
|
||||
{
|
||||
int r = 0;
|
||||
va_list ParamList;
|
||||
|
||||
va_start(ParamList, sFormat);
|
||||
|
||||
printf("[%s][%02d] ", pname, l);
|
||||
r = SEGGER_RTT_vprintf(0, sFormat, &ParamList);
|
||||
|
||||
va_end(ParamList);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
void TCPInit( )
|
||||
{
|
||||
BaseType_t fr_status;
|
||||
@@ -60,9 +80,8 @@ void TCPInit( )
|
||||
}
|
||||
}
|
||||
|
||||
void wolfSSL_TLS_client_init(const char* cipherlist)
|
||||
void wolfSSL_TLS_client_init()
|
||||
{
|
||||
|
||||
#ifndef NO_FILESYSTEM
|
||||
#ifdef USE_ECC_CERT
|
||||
char *cert = "./certs/ca-ecc-cert.pem";
|
||||
@@ -80,18 +99,16 @@ void wolfSSL_TLS_client_init(const char* cipherlist)
|
||||
#endif
|
||||
|
||||
wolfSSL_Init();
|
||||
#ifdef DEBUG_WOLFSSL
|
||||
wolfSSL_Debugging_ON();
|
||||
#endif
|
||||
|
||||
/* Create and initialize WOLFSSL_CTX */
|
||||
if ((client_ctx = wolfSSL_CTX_new(wolfSSLv23_client_method_ex((void *)NULL))) == NULL) {
|
||||
if ((client_ctx = wolfSSL_CTX_new(
|
||||
wolfSSLv23_client_method_ex((void *)NULL))) == NULL) {
|
||||
printf("ERROR: failed to create WOLFSSL_CTX\n");
|
||||
return;
|
||||
}
|
||||
#if defined(WOLFSSL_RENESAS_SCEPROTECT)
|
||||
/* set callback functions for ECC */
|
||||
wc_sce_set_callbacks(client_ctx);
|
||||
/* set callback functions for ECC */
|
||||
wc_sce_set_callbacks(client_ctx);
|
||||
#endif
|
||||
|
||||
#if !defined(NO_FILESYSTEM)
|
||||
@@ -100,90 +117,168 @@ void wolfSSL_TLS_client_init(const char* cipherlist)
|
||||
return NULL;
|
||||
}
|
||||
#else
|
||||
if (wolfSSL_CTX_load_verify_buffer(client_ctx, cert, SIZEOF_CERT, SSL_FILETYPE_ASN1) != SSL_SUCCESS){
|
||||
if (wolfSSL_CTX_load_verify_buffer(client_ctx, cert, SIZEOF_CERT,
|
||||
SSL_FILETYPE_ASN1) != SSL_SUCCESS){
|
||||
printf("ERROR: can't load certificate data\n");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* use specific cipher */
|
||||
if (cipherlist != NULL && wolfSSL_CTX_set_cipher_list(client_ctx, cipherlist) != WOLFSSL_SUCCESS) {
|
||||
wolfSSL_CTX_free(client_ctx); client_ctx = NULL;
|
||||
printf("client can't set cipher list 1");
|
||||
}
|
||||
}
|
||||
|
||||
void wolfSSL_TLS_client( )
|
||||
void wolfSSL_TLS_client_do(void *pvParam)
|
||||
{
|
||||
|
||||
int ret;
|
||||
int i = 0;
|
||||
#if defined(TLS_MULTITHREAD_TEST)
|
||||
BaseType_t xStatus;
|
||||
#endif
|
||||
TestInfo* p = (TestInfo*)pvParam;
|
||||
/* FreeRTOS+TCP Objects */
|
||||
socklen_t xSize = sizeof(struct freertos_sockaddr);
|
||||
xSocket_t xClientSocket = NULL;
|
||||
struct freertos_sockaddr xRemoteAddress;
|
||||
|
||||
WOLFSSL_CTX *ctx = (WOLFSSL_CTX *)client_ctx;
|
||||
WOLFSSL *ssl;
|
||||
WOLFSSL_CTX *ctx = (WOLFSSL_CTX *)p->ctx;
|
||||
WOLFSSL *ssl = NULL;
|
||||
const char* pcName = p->name;
|
||||
|
||||
#define BUFF_SIZE 256
|
||||
static const char sendBuff[]= "Hello Server\n" ;
|
||||
|
||||
char rcvBuff[BUFF_SIZE] = {0};
|
||||
|
||||
i = p->id;
|
||||
/* Client Socket Setup */
|
||||
xRemoteAddress.sin_port = FreeRTOS_htons(DEFAULT_PORT);
|
||||
xRemoteAddress.sin_port = FreeRTOS_htons(p->port);
|
||||
xRemoteAddress.sin_addr = FreeRTOS_inet_addr(SERVER_IP);
|
||||
|
||||
/* Create a FreeRTOS TCP Socket and connect */
|
||||
xClientSocket = FreeRTOS_socket(FREERTOS_AF_INET,
|
||||
FREERTOS_SOCK_STREAM,
|
||||
FREERTOS_IPPROTO_TCP);
|
||||
configASSERT(xClientSocket != FREERTOS_INVALID_SOCKET);
|
||||
FreeRTOS_bind(xClientSocket, &xRemoteAddress, sizeof(xSize));
|
||||
/* Create a FreeRTOS TCP Socket and connect */
|
||||
xClientSocket = FreeRTOS_socket(FREERTOS_AF_INET,
|
||||
FREERTOS_SOCK_STREAM,
|
||||
FREERTOS_IPPROTO_TCP);
|
||||
|
||||
/* Client Socket Connect */
|
||||
ret = FreeRTOS_connect(xClientSocket,
|
||||
&xRemoteAddress,
|
||||
sizeof(xRemoteAddress));
|
||||
if (ret != FR_SOCKET_SUCCESS) {
|
||||
printf("Error [%d]: FreeRTOS_connect.\n",ret);
|
||||
util_inf_loop(xClientSocket, ctx, ssl);
|
||||
configASSERT(xClientSocket != FREERTOS_INVALID_SOCKET);
|
||||
|
||||
FreeRTOS_bind(xClientSocket, NULL, sizeof(xSize));
|
||||
|
||||
/* Client Socket Connect */
|
||||
ret = FreeRTOS_connect(xClientSocket,
|
||||
&xRemoteAddress,
|
||||
sizeof(xRemoteAddress));
|
||||
|
||||
if (ret != FR_SOCKET_SUCCESS) {
|
||||
msg(pcName, i, " Error [%d]: FreeRTOS_connect.\n", ret);
|
||||
goto out;
|
||||
}
|
||||
|
||||
#if defined(TLS_MULTITHREAD_TEST)
|
||||
msg(pcName, i, " Ready to connect.\n");
|
||||
xStatus = xSemaphoreTake(p->xBinarySemaphore, portMAX_DELAY);
|
||||
if (xStatus != pdTRUE) {
|
||||
msg(pcName, i, " Error : Failed to xSemaphoreTake\n");
|
||||
goto out;
|
||||
}
|
||||
#endif
|
||||
|
||||
msg(pcName, i, " Start to connect to the server.\n");
|
||||
|
||||
if((ssl = wolfSSL_new(ctx)) == NULL) {
|
||||
msg(pcName, i, " ERROR wolfSSL_new: %d\n", wolfSSL_get_error(ssl, 0));
|
||||
goto out;
|
||||
}
|
||||
#if defined(WOLFSSL_RENESAS_SCEPROTECT)
|
||||
|
||||
/* Set callback CTX */
|
||||
#if !defined(TLS_MULTITHREAD_TEST)
|
||||
|
||||
memset(&guser_PKCbInfo, 0, sizeof(User_SCEPKCbInfo));
|
||||
guser_PKCbInfo.devId = 0;
|
||||
wc_sce_set_callback_ctx(ssl, (void*)&guser_PKCbInfo);
|
||||
|
||||
#else
|
||||
if (p->port - DEFAULT_PORT == 0) {
|
||||
memset(&guser_PKCbInfo_taskA, 0, sizeof(User_SCEPKCbInfo));
|
||||
wc_sce_set_callback_ctx(ssl, (void*)&guser_PKCbInfo_taskA);
|
||||
}
|
||||
else {
|
||||
memset(&guser_PKCbInfo_taskB, 0, sizeof(User_SCEPKCbInfo));
|
||||
wc_sce_set_callback_ctx(ssl, (void*)&guser_PKCbInfo_taskB);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* Attach wolfSSL to the socket */
|
||||
ret = wolfSSL_set_fd(ssl, (int) xClientSocket);
|
||||
if (ret != WOLFSSL_SUCCESS) {
|
||||
msg(pcName, i, " Error [%d]: wolfSSL_set_fd.\n",ret);
|
||||
}
|
||||
|
||||
msg(pcName, i, " Cipher : %s\n",
|
||||
(p->cipher == NULL) ? "NULL" : p->cipher);
|
||||
/* use specific cipher */
|
||||
if (p->cipher != NULL && wolfSSL_set_cipher_list(ssl, p->cipher)
|
||||
!= WOLFSSL_SUCCESS) {
|
||||
msg(pcName, i, " client can't set cipher list 1");
|
||||
goto out;
|
||||
}
|
||||
|
||||
#ifdef DEBUG_WOLFSSL
|
||||
wolfSSL_Debugging_ON();
|
||||
#endif
|
||||
|
||||
if(wolfSSL_connect(ssl) != SSL_SUCCESS) {
|
||||
msg(pcName, i, " ERROR SSL connect: %d\n", wolfSSL_get_error(ssl, 0));
|
||||
goto out;
|
||||
}
|
||||
|
||||
#ifdef DEBUG_WOLFSSL
|
||||
wolfSSL_Debugging_OFF();
|
||||
#endif
|
||||
|
||||
if (wolfSSL_write(ssl, sendBuff, (int)strlen(sendBuff))
|
||||
!= (int)strlen(sendBuff)) {
|
||||
msg(pcName, i, " ERROR SSL write: %d\n", wolfSSL_get_error(ssl, 0));
|
||||
goto out;
|
||||
}
|
||||
|
||||
if ((ret=wolfSSL_read(ssl, rcvBuff, BUFF_SIZE)) < 0) {
|
||||
msg(pcName, i, " ERROR SSL read: %d\n", wolfSSL_get_error(ssl, 0));
|
||||
goto out;
|
||||
}
|
||||
|
||||
rcvBuff[ret] = '\0' ;
|
||||
msg(pcName, i, " Received: %s\n\n", rcvBuff);
|
||||
|
||||
out:
|
||||
if (ssl) {
|
||||
wolfSSL_shutdown(ssl);
|
||||
wolfSSL_free(ssl);
|
||||
ssl = NULL;
|
||||
/* need to reset callback */
|
||||
wc_sce_set_callbacks(client_ctx);
|
||||
}
|
||||
|
||||
if((ssl = wolfSSL_new(ctx)) == NULL) {
|
||||
printf("ERROR wolfSSL_new: %d\n", wolfSSL_get_error(ssl, 0));
|
||||
return;
|
||||
}
|
||||
#if defined(WOLFSSL_RENESAS_SCEPROTECT)
|
||||
/* set callback ctx */
|
||||
wc_sce_set_callback_ctx(ssl, (void*)&guser_PKCbInfo);
|
||||
#endif
|
||||
/* Attach wolfSSL to the socket */
|
||||
ret = wolfSSL_set_fd(ssl, (int) xClientSocket);
|
||||
if (ret != WOLFSSL_SUCCESS) {
|
||||
printf("Error [%d]: wolfSSL_set_fd.\n",ret);
|
||||
util_inf_loop(xClientSocket, ctx, ssl);
|
||||
/* clean up socket */
|
||||
if (xClientSocket) {
|
||||
FreeRTOS_shutdown(xClientSocket, FREERTOS_SHUT_RDWR);
|
||||
FreeRTOS_closesocket(xClientSocket);
|
||||
xClientSocket = NULL;
|
||||
}
|
||||
|
||||
if(wolfSSL_connect(ssl) != SSL_SUCCESS) {
|
||||
printf("ERROR SSL connect: %d\n", wolfSSL_get_error(ssl, 0));
|
||||
return;
|
||||
}
|
||||
#ifdef TLS_MULTITHREAD_TEST
|
||||
xSemaphoreGive(exit_semaph);
|
||||
vTaskDelete(NULL);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void wolfSSL_TLS_cleanup()
|
||||
{
|
||||
if (client_ctx) {
|
||||
wolfSSL_CTX_free(client_ctx);
|
||||
}
|
||||
|
||||
wolfSSL_Cleanup();
|
||||
|
||||
if (wolfSSL_write(ssl, sendBuff, strlen(sendBuff)) != strlen(sendBuff)) {
|
||||
printf("ERROR SSL write: %d\n", wolfSSL_get_error(ssl, 0));
|
||||
return;
|
||||
}
|
||||
|
||||
if ((ret=wolfSSL_read(ssl, rcvBuff, BUFF_SIZE)) < 0) {
|
||||
printf("ERROR SSL read: %d\n", wolfSSL_get_error(ssl, 0));
|
||||
return;
|
||||
}
|
||||
|
||||
rcvBuff[ret] = '\0' ;
|
||||
printf("Received: %s\n\n", rcvBuff);
|
||||
|
||||
/* frees all data before client termination */
|
||||
wolfSSL_free(ssl);
|
||||
wolfSSL_CTX_free(ctx);
|
||||
wolfSSL_Cleanup();
|
||||
}
|
||||
|
||||
1052
IDE/Renesas/e2studio/RA6M4/test/src/wolfssl_sce_unit_test.c
Normal file
1052
IDE/Renesas/e2studio/RA6M4/test/src/wolfssl_sce_unit_test.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -31,7 +31,7 @@ This sample program uses the following hardware and software libraries. If a new
|
||||
|Device|R5F565NEHxFP|
|
||||
|IDE| Renesas e2Studio Version:2022-01 |
|
||||
|Emulator| E1, E2 Emulator Lite |
|
||||
|Toolchain|CCRX v3.03.00|
|
||||
|Toolchain|CCRX v3.04.00|
|
||||
|TSIP| TSIP v1.15|
|
||||
<br>
|
||||
|
||||
@@ -58,7 +58,7 @@ Note) As of April 2022, TIPS v1.15 does not seem to be able to be added as a FIT
|
||||
|
||||
There is no need to create a new sample program. Since the project file is already prepared, please import the project from the IDE by following the steps below.
|
||||
|
||||
+ e2studio "File" menu> "Open project from file system ..."> "Directory (R) ..." Click the import source button and select the folder from which the project will be imported. Select the folder (Renesas/e2studio/\<MCU>/\<borad-name-folder\>/)) where this README file exists.
|
||||
+ e2studio "File" menu> "Open project from file system ..."> "Directory (R) ..." Click the import source button and select the folder from which the project will be imported. Select the folder (Renesas/e2studio/{MCU}/{board-name-folder}) where this README file exists.
|
||||
+ Four projects that can be imported are listed, but check only the three projects "smc", "test" and "wolfssl" and click the "Finish" button.
|
||||
|
||||
You should see the **smc**, **test**, and **wolfssl** 3 projects you imported into the project explorer.
|
||||
@@ -71,7 +71,7 @@ You will need to get the required FIT modules yourself. Follow the steps below t
|
||||
|
||||
1. Open the smc project in Project Explorer and double-click the **smc.scfg** file to open the Smart Configurator Perspective.
|
||||
|
||||
2. Select the "Components" tab on the software component settings pane. Then click the "Add Component" button at the top right of the pane. The software component selection dialog will pop up. Click "Download the latest version of FIT driver and middleware" at the bottom of the dialog to get the modules. You can check the dowmload destination folder by pressing "Basic settings...".
|
||||
2. Select the "Components" tab on the software component settings pane. Then click the "Add Component" button at the top right of the pane. The software component selection dialog will pop up. Click "Download the latest version of FIT driver and middleware" at the bottom of the dialog to get the modules. You can check the download destination folder by pressing "Basic settings...".
|
||||
|
||||
3. The latest version of the TSIP component may not be automatically obtained due to the delay in Renesas' support by the method in step 2 above. In that case, you can download it manually from the Renesas website. Unzip the downloaded component and store the files contained in the FIT Modules folder in the download destination folder of step 2.
|
||||
|
||||
@@ -135,11 +135,84 @@ Now that the test application is ready to build.
|
||||
## 8. Running test application as TLS_Client
|
||||
-----
|
||||
<br>
|
||||
### 8.1 Generate a server application
|
||||
|
||||
### 8.1 TLS version supported by the test application
|
||||
|
||||
<br>
|
||||
If you use TSIP v1.15 or later, you can use the TLS1.3 protocol in addition to the existing TLS1.2. The following macro is defined to {board-name-folder}/common/user_settings.h.
|
||||
<br><br>
|
||||
|
||||
```
|
||||
#define WOLFSSL_TLS13
|
||||
```
|
||||
|
||||
This definition sets it to use the TLS 1.3 protocol. If you use TLS1.2, comment out this macro definition and rebuild your test application.
|
||||
|
||||
<br>
|
||||
|
||||
### 8.2 Type of certificates to use
|
||||
|
||||
<br>
|
||||
|
||||
The test and server applications allow you to select the type of certificate (RootCA certificate, server certificate, client certificate) to use for TLS communication. You can select either an RSA certificate whose public key included in the certificate is an RSA public key or an ECDSA certificate containing an ECC public key. By default, the ECDSA certificate is used.
|
||||
<br>
|
||||
|
||||
The following macro is defined to {board-name-folder}/common/user_settings.h by default. If you want to use the RSA certificates, comment out the above definition and rebuild the test application.
|
||||
|
||||
<br>
|
||||
|
||||
```
|
||||
#define USE_ECC_CERT
|
||||
```
|
||||
<br>
|
||||
|
||||
### 8.3 Cipher suites
|
||||
|
||||
<br>
|
||||
|
||||
In the test application, the TLS version and certificate type determine the cipher suites used by the test application. The table below shows the cipher suites that can be used.
|
||||
<br>
|
||||
|
||||
|Tls version |Certificate type|Cipher suites|
|
||||
|:--|:--|:--|
|
||||
|TLS1.3|RSA/ECDSA certificate| |
|
||||
|||TLS_AES_128_GCM_SHA256|
|
||||
|||TLS_AES_128_CCM_SHA256|
|
||||
|TLS1.2|RSA certificate|
|
||||
|||TLS_RSA_WITH_AES_128_CBC_SHA|
|
||||
|||TLS_RSA_WITH_AES_256_CBC_SHA|
|
||||
|||TLS_RSA_WITH_AES_128_CBC_SHA256|
|
||||
|||TLS_RSA_WITH_AES_256_CBC_SHA256|
|
||||
|||TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256|
|
||||
|||TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256|
|
||||
||ECDSA certificate||
|
||||
|||TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256|
|
||||
|||TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256|
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
### 8.4 Build and run a server application
|
||||
|
||||
<br>
|
||||
To operate as TLS_Client, an opposite application for TLS communication is required. A wolfSSL package provides a server sample application that you can use for this purpose. This program is generated by building wolfssl. You can build wolfSSL on Linux (including MacOS and WSL) with gcc installed or build using Visual Studio. The following introduces the build on WSL.
|
||||
<br><br>
|
||||
|
||||
Configuration options need to be changed depending on the certificate type used.
|
||||
|
||||
#### 8.4.1 Configuration when using ECDSA certificates
|
||||
|
||||
<br>
|
||||
|
||||
```
|
||||
$ cd {wolfssl-folder}
|
||||
$ ./autogen.sh
|
||||
$ ./configure --enable-ecc --enable-dsa --enable-aesccm CFLAGS="-DWOLFSSL_STATIC_RSA -DHAVE_AES_CBC -DHAVE_DSA -DHAVE_ALL_CURVES -DHAVE_ECC -DNO_RSA"
|
||||
$ make
|
||||
```
|
||||
Note: Do not forget to specify "-DNO_RSA"
|
||||
|
||||
|
||||
```
|
||||
$ cd <wolfssl-folder>
|
||||
$ ./autogen.sh
|
||||
@@ -158,20 +231,45 @@ $ examples/server/server -b -d -i
|
||||
```
|
||||
<br>
|
||||
|
||||
For the test application, specify the IP address assigned to the server application.
|
||||
#### 8.4.2 Configuration when using RSA certificates
|
||||
|
||||
Open wolf_client.c to specify ip address of the server in "#define SIMPLE_TLSSEVER_IP" like as:
|
||||
<br>
|
||||
|
||||
```
|
||||
-- <board-name-folder>/test/src/wolf_client.c --
|
||||
$ cd {wolfssl-folder}
|
||||
$ ./autogen.sh
|
||||
$ ./configure --enable-ecc --enable-dsa --enable-aesccm CFLAGS="-DWOLFSSL_STATIC_RSA -DHAVE_AES_CBC -DHAVE_DSA -DHAVE_ALL_CURVES -DHAVE_ECC"
|
||||
$ make
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
#### 8.4.3 Run the server application
|
||||
|
||||
<br>
|
||||
|
||||
With the above build, {wolfssl-folder}/examples/server/server
|
||||
is generated. This executable program acts as a server application. If you execute it with the following options, it will be in the standby state for connection from the test application. Specify "-v4" when using TLS1.3 as the TLS version to be used, and specify "-v3" when using TLS1.2.
|
||||
<br> <br>
|
||||
|
||||
```
|
||||
$ examples / server / server -b -v4 -i
|
||||
```
|
||||
|
||||
<br>
|
||||
For the test application, specify the IP address assigned to the server application.
|
||||
|
||||
Open {board-name-folder}/test/src/wolf_client.c to specify ip address of the server.
|
||||
|
||||
<br>
|
||||
|
||||
```
|
||||
...
|
||||
#define SIMPLE_TLSSEVER_IP 192.168.53.9
|
||||
...
|
||||
```
|
||||
<br>
|
||||
Save the file and rebuild the test application. When you run the test application, it makes a TLS connection with the opposite application, then exchanges a simple string and displays the following on the standard output.
|
||||
Save the file and rebuild the test application. When you run the test application, it makes a TLS connection with the server application, then exchanges a simple string and displays the following on the standard output. The cipher suites displayed depends on the combination of TLS version and certificate type.
|
||||
<br><br>
|
||||
|
||||
```
|
||||
@@ -195,41 +293,7 @@ Received: I hear you fa shizzle!
|
||||
```
|
||||
<br>
|
||||
|
||||
### 8.2 Change server certificate (change authentication method)
|
||||
<br>
|
||||
The above is an execution example when the server certificate presented by the server application contains the RSA public key (RSA authentication). TSIP can also handle cases where the server certificate contains an ECC public key (ECDSA authentication).
|
||||
|
||||
<br>
|
||||
If you want to use a cipher suite that includes ECDSA, you will need to change the settings of the test application and rebuild. Open common/ user_settings.h, enable the USE_ECC_CERT definition and rebuild.
|
||||
<br><br>
|
||||
|
||||
```
|
||||
-- <board-name-folder>/common/user_settings.h --
|
||||
|
||||
#define USE_ECC_CERT
|
||||
```
|
||||
<br>
|
||||
This definition causes the test application to use a RootCA certificate that can validate the server certificate containing the ECC public key presented by the server.
|
||||
|
||||
<br>
|
||||
In addition, the opposite server application also needs to specify the server certificate and private key file containing the ECC public key as an option, and then execute it as shown below.
|
||||
<br><br>
|
||||
|
||||
```
|
||||
$ ./examples/server/server -b -d -i -c ./certs/server-ecc.pem -k ./certs/ecc-key.pem
|
||||
```
|
||||
<br>
|
||||
The following is displayed as the execution result.
|
||||
<br> <br>
|
||||
|
||||
```
|
||||
cipher : ECDHE-ECDSA-AES128-SHA256
|
||||
Received: I hear you fa shizzle!
|
||||
|
||||
cipher : ECDHE-ECDSA-AES128-GCM-SHA256
|
||||
Received: I hear you fa shizzle!
|
||||
```
|
||||
<br>
|
||||
|
||||
## 9. What you need to do to use the RootCA certificate prepared by the user
|
||||
----
|
||||
@@ -240,4 +304,24 @@ If you want to use it for purposes beyond functional evaluation, you need to pre
|
||||
2. RSA key pair required for RootCA certificate validation
|
||||
3. The signature generated by the RootCA certificate with the private key in 2 above.
|
||||
|
||||
will become necessary. Please refer to the manual provided by Renesas for how to generate them.
|
||||
will become necessary. Please refer to the manual provided by Renesas for how to generate them.
|
||||
<br>
|
||||
|
||||
## 10. Limitations
|
||||
----
|
||||
<br>
|
||||
wolfSSL, which supports TSIPv1.15, has the following functional restrictions.
|
||||
<br><br>
|
||||
|
||||
1. Handshake message packets exchanged with the server during the TLS handshake are stored in plaintext in memory. This is used to calculate the hash of handshake messages. The content will be deleted at the end of the session.
|
||||
|
||||
1. TLS1.2 does not support the client authentication function using TSIP.
|
||||
Use wolfSSL_CTX_use_certificate_buffer or wolfSSL_CTX_use_certificate_chain_buffer_format to load the client certificate and wolfSSL_CTX_use_PrivateKey_buffer to load the private key. It is processed by software.
|
||||
|
||||
1. In TLS 1.3, the client authentication function using TSIP is supported only for ECDSA client certificates. In the case of RSA certificates, it will be processed by software.
|
||||
|
||||
1. In TLS1.3, among the server authentication functions using TSIP, "Certificate Verify" message is processed by software.
|
||||
|
||||
1. Session resumption and early data using TSIP are not supported.
|
||||
|
||||
The above limitations 1 through 4 are expected to be improved by TSIP from the next version onwards.
|
||||
@@ -32,7 +32,7 @@ Renesas社製MCU RX65Nを搭載した評価ボードGR-ROSEをターゲットと
|
||||
|Device|R5F565NEHxFP|
|
||||
|IDE| Renesas e2Studio Version:2022-01 |
|
||||
|エミュレーター| E1, E2エミュレーターLite |
|
||||
|Toolchain|CCRX v3.03.00|
|
||||
|Toolchain|CCRX v3.04.00|
|
||||
|TSIP| TSIP v1.15|
|
||||
<br>
|
||||
|
||||
@@ -63,7 +63,7 @@ Renesas社製MCU RX65Nを搭載した評価ボードGR-ROSEをターゲットと
|
||||
サンプルプログラムは新規作成する必要はありません。すでにプロジェクトファイルが用意されていますからIDEから以下の手順でプロジェクトをインポートしてください。
|
||||
|
||||
|
||||
+ 1.e2studioの"ファイル"メニュー > "ファイル・システムからプロジェクトを開く..." > "ディレクトリ(R)..."インポート元ボタンを押して、プロジェクトのインポート元となるフォルダーを選択します。本READMEファイルが存在するフォルダ(Renesas/e2studio/\<MCU>/\<borad-name-folder\>/))を選択してください。
|
||||
+ 1.e2studioの"ファイル"メニュー > "ファイル・システムからプロジェクトを開く..." > "ディレクトリ(R)..."インポート元ボタンを押して、プロジェクトのインポート元となるフォルダーを選択します。本READMEファイルが存在するフォルダ(Renesas/e2studio/{MCU}/{board-name-folder})を選択してください。
|
||||
|
||||
+ インポートできるプロジェクトが4つリストアップされますが、"smc", "test" と"wolfssl"の3プロジェクトにのみチェックを入れて”終了”ボタンを押してください。
|
||||
|
||||
@@ -143,26 +143,110 @@ testアプリケーションのビルドの準備が整ったので、ビルド
|
||||
-----
|
||||
<br>
|
||||
|
||||
### 8.1 TLS対向アプリケーションの生成と実行
|
||||
### 8.1 testアプリケーションのサポートするTLSバージョン
|
||||
<br>
|
||||
TSIPv1.15以降を使用する場合には、これまでのTLS1.2に加えてTLS1.3プロトコルが使用できます。{board-name-folder}/common/user_settings.hに既定で以下のマクロ定義が設定されています。
|
||||
<br><br>
|
||||
|
||||
```
|
||||
#define WOLFSSL_TLS13
|
||||
```
|
||||
この定義によりTLS1.3プロトコルを使用する設定となります。TLS1.2を使用する場合には、このマクロ定義をコメントアウトしてして、testアプリケーションを再ビルドしてください。
|
||||
|
||||
<br>
|
||||
|
||||
### 8.2 使用する証明書のタイプ
|
||||
|
||||
<br>
|
||||
|
||||
testアプリケーションとサーバーアプリケーションではTLS通信時に使用する証明書(RootCA証明書、サーバー証明書、クライアント証明書)のタイプが選択できます。証明書に含まれている公開鍵がRSA公開鍵であるRSA証明書とECC公開鍵を含むECDSA証明書が選択できます。既定ではECDSA証明書を使用するようになっています。
|
||||
|
||||
<br>
|
||||
{board-name-folder}/common/user_settings.h に既定で以下のマクロ定義が設定されています。RSA証明書を使用する場合には上記定義をコメントアウトして、testアプリケーションを再ビルドしてください。
|
||||
<br><br>
|
||||
|
||||
```
|
||||
#define USE_ECC_CERT
|
||||
```
|
||||
|
||||
<br>
|
||||
この定義により、testアプリケーションはサーバーの提示するECC公開鍵を含んだサーバー証明書を検証できるRootCA証明書を使うようになります。また、クライアント認証に用いるクライアント証明書もECDSA証明書が使われます。
|
||||
<br><br>
|
||||
|
||||
|
||||
### 8.3 暗号化スイートの選択
|
||||
|
||||
<br>
|
||||
testアプリケーションでは、TLSバージョンと証明書のタイプにより、testアプリケーションで使用する暗号化スイートを決定します。下表に使用できる暗号化スイートを示します。
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
|バージョン|証明書|暗号化スイート|
|
||||
|:--|:--|:--|
|
||||
|TLS1.3|RSA/ECDSA証明書| |
|
||||
|||TLS_AES_128_GCM_SHA256|
|
||||
|||TLS_AES_128_CCM_SHA256|
|
||||
|TLS1.2|RSA証明書|
|
||||
|||TLS_RSA_WITH_AES_128_CBC_SHA|
|
||||
|||TLS_RSA_WITH_AES_256_CBC_SHA|
|
||||
|||TLS_RSA_WITH_AES_128_CBC_SHA256|
|
||||
|||TLS_RSA_WITH_AES_256_CBC_SHA256|
|
||||
|||TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256|
|
||||
|||TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256|
|
||||
||ECDSA証明書||
|
||||
|||TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256|
|
||||
|||TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256|
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
### 8.4 TLS対向アプリケーションのビルドと実行
|
||||
|
||||
<br>
|
||||
|
||||
testアプリケーションをTLS_Clientとしての動作を行わせる場合には、TLS通信の相手方となる対向アプリケーションが必要となります。wolfSSLパッケージにはこの用途に使用できるTLSserverサンプルアプリケーションが用意されています。このプログラムはwolfsslをビルドすることで生成されます。wolfSSLのビルドにはgccがインストールされているLinux(MacOS, WSLも含む)でのビルドとVisualStudioを使ってのビルドが可能です。以下ではWSL上でのビルドを紹介します。
|
||||
<br><br>
|
||||
|
||||
コンフィギュレーションオプションは使用する証明書タイプによって変更する必要があります。
|
||||
|
||||
<br>
|
||||
|
||||
#### 8.4.1 ECDSA証明書を使用する場合のコンフィギュレーション
|
||||
|
||||
<br>
|
||||
|
||||
```
|
||||
$ cd <wolfssl-folder>
|
||||
$ cd {wolfssl-folder}
|
||||
$ ./autogen.sh
|
||||
$ ./configure CFLAGS="-DWOLFSSL_STATIC_RSA -DHAVEAES_CBC"
|
||||
$ ./configure --enable-ecc --enable-dsa --enable-aesccm CFLAGS="-DWOLFSSL_STATIC_RSA -DHAVE_AES_CBC -DHAVE_DSA -DHAVE_ALL_CURVES -DHAVE_ECC -DNO_RSA"
|
||||
$ make
|
||||
```
|
||||
(注意)"-DNO_RSA"の指定をわすれないこと
|
||||
|
||||
<br>
|
||||
|
||||
#### 8.4.2 RSA証明書を使用する場合のコンフィギュレーション
|
||||
|
||||
<br>
|
||||
|
||||
```
|
||||
$ cd {wolfssl-folder}
|
||||
$ ./autogen.sh
|
||||
$ ./configure --enable-ecc --enable-dsa --enable-aesccm CFLAGS="-DWOLFSSL_STATIC_RSA -DHAVE_AES_CBC -DHAVE_DSA -DHAVE_ALL_CURVES -DHAVE_ECC"
|
||||
$ make
|
||||
```
|
||||
|
||||
<br>
|
||||
上記のビルドによって、<wolfssl-folder\>/examples/server/server
|
||||
が生成されます。この実行プログラムがサーバーアプリケーションとして機能します。以下のオプションを与えて実行させるとTLS_Clientからの接続を待ち受け状態になります。
|
||||
|
||||
#### 8.4.3 サーバーアプリケーションの実行
|
||||
<br>
|
||||
上記のビルドによって、{wolfssl-folder}/examples/server/server
|
||||
が生成されます。この実行プログラムがサーバーアプリケーションとして機能します。以下のオプションを与えて実行させるとtestアプリケーションからの接続を待ち受け状態になります。 使用するTLSバージョンとして TLS1.3を使用する場合には "-v4"を指定し、TLS1.2を使用する場合には"-v3"を指定してください。
|
||||
<br><br>
|
||||
|
||||
```
|
||||
$ examples/server/server -b -d -i
|
||||
$ examples/server/server -b -v4 -i
|
||||
```
|
||||
<br>
|
||||
testアプリケーションには、サーバーアプリケーションに割り当てられたIPアドレスを指定します。
|
||||
@@ -177,7 +261,8 @@ wolf_client.cを開き、#define SIMPLE_TLSSEVER_IPにアドレスを指定し
|
||||
...
|
||||
```
|
||||
<br>
|
||||
ファイルをセーブしてtestアプリケーションを再ビルドしてください。testアプリケーションを実行すると、対向アプリケーションとの間でTLS接続が行われ、その後簡単な文字列を交換して標準出力に以下のような表示を行います。
|
||||
ファイルをセーブしてtestアプリケーションを再ビルドしてください。testアプリケーションを実行すると、対向アプリケーションとの間でTLS接続が行われ、その後簡単な文字列を交換して標準出力に以下のような表示を行います。表示される暗号化スイートはTLSバージョンと証明書タイプの組み合わせによって異なります。
|
||||
|
||||
<br><br>
|
||||
|
||||
```
|
||||
@@ -201,41 +286,6 @@ Received: I hear you fa shizzle!
|
||||
```
|
||||
<br>
|
||||
|
||||
### 8.2 サーバー証明書の変更(認証方式の変更)
|
||||
|
||||
<br>
|
||||
上記はサーバーアプリケーションが提示すサーバー証明書にRSA公開鍵が含まれている(RSA認証)場合の実行例です。TSIPにはこのほかにサーバー証明書にECC公開鍵を含む場合(ECDSA認証)も扱えます。
|
||||
|
||||
<br>
|
||||
ECDSAを含む暗号化スイートを使用したい場合には、testアプリケーションの設定を変更して再ビルドが必要となります。\<board-name-folder\>/common/user_settings.h を開き、USE_ECC_CERT定義を有効化して再ビルドしてください。
|
||||
<br><br>
|
||||
|
||||
```
|
||||
#define USE_ECC_CERT
|
||||
```
|
||||
|
||||
<br>
|
||||
この定義により、testアプリケーションはサーバーの提示するECC公開鍵を含んだサーバー証明書を検証できるRootCA証明書を使うようになります。
|
||||
<br><br>
|
||||
|
||||
さらに対向するサーバーアプリケーションの方でも以下のようにECC公開鍵を含んだサーバー証明書と秘密鍵ファイルをオプションで指定して実行する必要があります。
|
||||
<br><br>
|
||||
|
||||
```
|
||||
$ ./examples/server/server -b -d -i -c ./certs/server-ecc.pem -k ./certs/ecc-key.pem
|
||||
```
|
||||
<br>
|
||||
実行結果として以下が表示されます。
|
||||
<br><br>
|
||||
|
||||
```
|
||||
cipher : ECDHE-ECDSA-AES128-SHA256
|
||||
Received: I hear you fa shizzle!
|
||||
|
||||
cipher : ECDHE-ECDSA-AES128-GCM-SHA256
|
||||
Received: I hear you fa shizzle!
|
||||
```
|
||||
<br>
|
||||
|
||||
## 9. ユーザーが用意したRootCA証明書を利用する際に必要なこと
|
||||
-----
|
||||
@@ -247,3 +297,22 @@ Received: I hear you fa shizzle!
|
||||
3. RootCA証明書を上記2の秘密鍵で生成した署名
|
||||
|
||||
が必要になります。それらの生成方法はRenesas社提供のマニュアルを参照してください。
|
||||
|
||||
<br>
|
||||
|
||||
## 10. 制限事項
|
||||
|
||||
TSIPv1.15をサポートしたwolfSSLでは以下の機能制限があります。
|
||||
|
||||
1. TLSハンドシェーク中にサーバーと交換したメッセージパケットが平文でメモリ上に蓄積されています。これはハンドシェークメッセージのハッシュ計算に使用されます。内容はセッション終了時に削除されます。
|
||||
|
||||
1. TLS1.2ではTSIPを使ったクライアント認証機能をサポートしていません。
|
||||
wolfSSL_CTX_use_certificate_buffer あるいはwolfSSL_CTX_use_certificate_chain_buffer_format を使ってクライアント証明書をロードし、wolfSSL_CTX_use_PrivateKey_bufferを使って秘密鍵をロードしてください。ソフトウエアで処理を行います。
|
||||
|
||||
1. TLS1.3ではTSIPを使ったクライアント認証機能はECDSAクライアント証明書の場合にのみサポートされます。RSA証明書の場合はソフトウエアでの処理となります。
|
||||
|
||||
1. TLS1.3ではTSIPを使ったサーバー認証機能のうち、CertificateVerifyメッセージの検証はソフトウエアでの処理となります。
|
||||
|
||||
1. TSIPを使ってのセッション再開およびearly dataはサポートされません。
|
||||
|
||||
上記制限1 ~ 4は次版以降のTSIPによって改善が見込まれています。
|
||||
@@ -1,6 +1,6 @@
|
||||
/* user_settings.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -49,7 +49,7 @@
|
||||
* TLSv1.3, uncomment line below.
|
||||
*
|
||||
*----------------------------------------------------------------------------*/
|
||||
/*#define WOLFSSL_TLS13*/
|
||||
#define WOLFSSL_TLS13
|
||||
|
||||
|
||||
/*-- Operating System related definitions --------------------------------------
|
||||
@@ -68,11 +68,12 @@
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
#define NO_DEV_RANDOM
|
||||
|
||||
#define NO_MD4
|
||||
#define WOLFSSL_DH_CONST
|
||||
#define HAVE_TLS_EXTENSIONS
|
||||
|
||||
#define HAVE_AESGCM
|
||||
#define HAVE_AESCCM
|
||||
#define HAVE_AES_CBC
|
||||
#define WOLFSSL_SHA512
|
||||
|
||||
@@ -104,7 +105,7 @@
|
||||
* - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA256
|
||||
*
|
||||
*/
|
||||
/*#define USE_ECC_CERT*/
|
||||
#define USE_ECC_CERT
|
||||
|
||||
/* In this example application, Root CA cert buffer named
|
||||
* "ca_ecc_cert_der_256" is used under the following macro definition
|
||||
@@ -124,9 +125,15 @@
|
||||
*----------------------------------------------------------------------------*/
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
|
||||
#if !defined(min)
|
||||
#define min(data1, data2) _builtin_min(data1, data2)
|
||||
#endif
|
||||
/*#define WOLFSSL_STATIC_MEMORY*/
|
||||
|
||||
#if defined(WOLFSSL_STATIC_MEMORY)
|
||||
#define USE_FAST_MATH
|
||||
#else
|
||||
#define WOLFSSL_SMALL_STACK
|
||||
#endif /* WOLFSSL_STATIC_MEMORY */
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* -- "NO_ASN_TIME" macro is to avoid certificate expiration validation --
|
||||
@@ -145,13 +152,15 @@
|
||||
#define WOLFSSL_LOG_PRINTF
|
||||
#define WOLFSSL_HAVE_MIN
|
||||
#define WOLFSSL_HAVE_MAX
|
||||
#define WOLFSSL_SMALL_STACK
|
||||
|
||||
#define NO_WRITEV
|
||||
#define WOLFSSL_USER_IO
|
||||
|
||||
#define WOLFSSL_USER_CURRTIME /* for benchmark */
|
||||
#define USER_TIME
|
||||
#define TIME_OVERRIDES
|
||||
#define XTIME time
|
||||
#define WOLFSSL_GMTIME
|
||||
#define XGMTIME(c,t) gmtime(c)
|
||||
#define USE_WOLF_SUSECONDS_T
|
||||
#define USE_WOLF_TIMEVAL_T
|
||||
|
||||
@@ -220,3 +229,6 @@
|
||||
#define HAVE_HKDF
|
||||
#define WC_RSA_PSS
|
||||
#endif
|
||||
|
||||
|
||||
#define XSTRCASECMP(s1,s2) strcmp((s1),(s2))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wolfssl_dummy.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -19,15 +19,16 @@
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||
*/
|
||||
|
||||
typedef unsigned long time_t;
|
||||
#include <wolfssl/wolfcrypt/wc_port.h>
|
||||
|
||||
#define YEAR 2022
|
||||
#define MON 3
|
||||
#define MON 6
|
||||
|
||||
static int tick = 0;
|
||||
|
||||
time_t time(time_t *t)
|
||||
{
|
||||
(void)t;
|
||||
return ((YEAR-1970)*365+30*MON)*24*60*60 + tick++;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,13 +23,13 @@
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE" id="com.renesas.cdt.managedbuild.renesas.ccrx.base.targetPlatform.24124316" osList="win32" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.targetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/smc}/HardwareDebug" id="com.renesas.cdt.managedbuild.renesas.ccrx.base.builder.1276377212" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CCRX Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.builder"/>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.dsp.1034155595" name="DSP Assembler" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.dsp">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo.1326286577" name="デバッグ情報を出力する (-no_debug_info)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.19247995" name="出力するデータ値のエンディアン (-littleEndianData)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.big" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo.1326286577" name="Output debug information (-no_debug_info)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.19247995" name="Endian of output data value (-littleEndianData)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.big" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.common.1818731181" name="Common" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.common">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.1574659789" name="命令セット・アーキテクチャ (-isa)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.rxv2" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.1574659789" name="Instruction set architecture (-isa)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.rxv2" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.rxArchitecture.7532856" name="RX Architecture" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.rxArchitecture" useByScannerDiscovery="false" value="rxv2" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.841340110" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.yes" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.841340110" name="Use floating point arithmetic instructions (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.yes" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasFpu.287393662" name="Has FPU" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasFpu" useByScannerDiscovery="false" value="TRUE" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceName.646833302" name="Device Name" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceName" useByScannerDiscovery="false" value="R5F565NEHxFP" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory.1966837765" name="Device history" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory" useByScannerDiscovery="false" value="non_init;R5F565NEHxFP" valueType="string"/>
|
||||
@@ -40,9 +40,10 @@
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily.1674070815" name="Device Family" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily" useByScannerDiscovery="false" value="RX65N" valueType="string"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.compiler.1508700917" name="Compiler" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.compiler">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.4886222" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include.1248634269" name="インクルード・ファイルを検索するフォルダ (-include)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include" valueType="includePath">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.4886222" name="Use floating point arithmetic instructions (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include.1248634269" name="Include file directories (-include)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${TCINSTALL}/include"/>
|
||||
<listOptionValue builtIn="false" value="${ProjDirPath}/generate"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/general}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/Config_TMR0}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_pincfg}""/>
|
||||
@@ -59,70 +60,70 @@
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_t4_rx/lib}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_tsip_rx}""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore.1431645164" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore.1431645164" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter.148221317" name="追加するオプション(すべての指定オプションの後ろに追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter.148221317" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.10897982" name="Cソース (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.c99" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.2076226696" name="プログラムの文字コード (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.utf8" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.1726073063" name="出力する文字コード (-outcode)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.utf8" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.10897982" name="C source file (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.c99" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.2076226696" name="Character code of an input program (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.utf8" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.1726073063" name="Output character code (-outcode)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.utf8" valueType="enumerated"/>
|
||||
<inputType id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gcc.inputType.680339798" name="Compiler Input C" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gcc.inputType"/>
|
||||
<inputType id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gpp.inputType.1035083979" name="Compiler Input CPP" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gpp.inputType"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.assembler.770500626" name="Assembler" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.assembler">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore.678526255" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore.678526255" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter.214576131" name="追加するオプション(すべての指定オプションの後ろに追加) " superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter.214576131" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.1261556953" name="プログラムの文字コード (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.utf8" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.1261556953" name="Character code of an input program (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.utf8" valueType="enumerated"/>
|
||||
<inputType id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.inputType.756564181" name="Assembler InputType" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.inputType"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.linker.1339846431" name="Linker" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.linker">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom.1434821333" name="ROMからRAMへマップするセクション (-rom)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom.1434821333" name="ROM to RAM mapped section (-rom)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="D=R"/>
|
||||
<listOptionValue builtIn="false" value="D_1=R_1"/>
|
||||
<listOptionValue builtIn="false" value="D_2=R_2"/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection.394830605" name="セクション (-start)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection" useByScannerDiscovery="false" value="SU,SI,B_1,R_1,B_2,R_2,B,R/04,C_1,C_2,C,C$*,D*,W*,L,P*/0FFE00000,EXCEPTVECT/0FFFFFF80,RESETVECT/0FFFFFFFC,B_ETHERNET_BUFFERS_1,B_RX_DESC_1,B_TX_DESC_1/00010000" valueType="string"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore.1196210369" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection.394830605" name="Sections (-start)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection" useByScannerDiscovery="false" value="SU,SI,B_1,R_1,B_2,R_2,B,R/04,C_1,C_2,C,C$*,D*,W*,L,P*/0FFE00000,EXCEPTVECT/0FFFFFF80,RESETVECT/0FFFFFFFC,B_ETHERNET_BUFFERS_1,B_RX_DESC_1,B_TX_DESC_1/00010000" valueType="string"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore.1196210369" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter.41222079" name="追加するオプション(すべての指定オプションの後ろに追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter.41222079" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.vect.1146521938" name="可変ベクタテーブルのアドレス未設定ベクタ番号に指定するアドレス (-vect)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.vect" useByScannerDiscovery="false" value="_undefined_interrupt_source_isr" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection.1165075859" name="セクションの割り付けアドレスをチェックする (-cpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.1456895529" name="アドレス範囲指定方法 (-cpu(アドレス範囲指定方法))" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.autoSpecify" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList.1219751178" name="(リンク順序のリスト) (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList" valueType="stringList">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.vect.1146521938" name="Address setting for unused vector area (-vect)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.vect" useByScannerDiscovery="false" value="_undefined_interrupt_source_isr" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection.1165075859" name="Checks the section larger than the specified range of addresses (-cpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.1456895529" name="Memory address type assignment method (-cpu(Address space of Single-Chip Mode))" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.autoSpecify" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList.1219751178" name="(Linkage order list) (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="".\smc.lib""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.inputFile.1233488024" name="リンクするリロケータブル・ファイル、ライブラリ・ファイルおよびバイナリ・ファイル (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.inputFile" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.inputFile.1233488024" name="Relocatable files, object files and library files (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.inputFile" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_tsip_rx/lib/ccrx/r_tsip_rx65n_little.lib}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_t4_rx/lib/ccrx/T4_Library_ether_ccrx_rxv1_little.lib}""/>
|
||||
</option>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.librarian.465470766" name="Library Generator" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.librarian">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.1269590255" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore.270923116" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.1269590255" name="Use floating point arithmetic instructions (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore.270923116" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter.1299397327" name="追加するオプション(すべての指定オプションの後ろに追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter.1299397327" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang.1765409610" name="C言語標準ライブラリ関数の構成 (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang.c99" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang.1765409610" name="Library configuration (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang.c99" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.converter.1302985020" name="Converter" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.converter">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore.214292277" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore.214292277" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter.291317464" name="追加するオプション(すべての指定オプションの後ろに追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter.291317464" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile.342553276" name="出力ファイル形式 (-form)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile" value="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOFOutputFile.none" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile.342553276" name="Output file type (-form)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile" value="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOFOutputFile.none" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.rtosConfig.287664454" name="RTOS Configurator" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.rtosConfig"/>
|
||||
</toolChain>
|
||||
@@ -133,6 +134,11 @@
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
<storageModule moduleId="com.renesas.cdt.managedbuild.core.boardInfo">
|
||||
<option id="board.id" value="gr-rose"/>
|
||||
<option id="board.name" value="gr-rose"/>
|
||||
<option id="board.device" value="R5F565NEHxFP"/>
|
||||
</storageModule>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
@@ -143,4 +149,5 @@
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
|
||||
<storageModule moduleId="refreshScope"/>
|
||||
</cproject>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -14,7 +14,7 @@
|
||||
</storageModule>
|
||||
<storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
|
||||
<option id="toolchain.id" value="Renesas_RXC"/>
|
||||
<option id="toolchain.version" value="v3.03.00"/>
|
||||
<option id="toolchain.version" value="v3.04.00"/>
|
||||
<option id="toolchain.enable" value="true"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
@@ -24,13 +24,13 @@
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE" id="com.renesas.cdt.managedbuild.renesas.ccrx.base.targetPlatform.808325012" osList="win32" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.targetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/test}/HardwareDebug" id="com.renesas.cdt.managedbuild.renesas.ccrx.base.builder.65531188" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CCRX Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.builder"/>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.dsp.1710373085" name="DSP Assembler" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.dsp">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo.390598726" name="デバッグ情報を出力する (-no_debug_info)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.2145260692" name="出力するデータ値のエンディアン (-littleEndianData)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.big" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo.390598726" name="Output debug information (-no_debug_info)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.2145260692" name="Endian of output data value (-littleEndianData)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.big" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.common.385785132" name="Common" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.common">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.968417281" name="命令セット・アーキテクチャ (-isa)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.rxv2" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.968417281" name="Instruction set architecture (-isa)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.rxv2" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.rxArchitecture.1826562770" name="RX Architecture" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.rxArchitecture" useByScannerDiscovery="false" value="rxv2" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.2015650112" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.yes" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.2015650112" name="Use floating point arithmetic instructions (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.yes" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasFpu.1065149525" name="Has FPU" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasFpu" useByScannerDiscovery="false" value="TRUE" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceName.1439501151" name="Device Name" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceName" useByScannerDiscovery="false" value="R5F565NEHxFP" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory.141103170" name="Device history" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory" useByScannerDiscovery="false" value="non_init;R5F565NEHxFP" valueType="string"/>
|
||||
@@ -41,15 +41,14 @@
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily.2015079094" name="Device Family" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily" useByScannerDiscovery="false" value="RX65N" valueType="string"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.compiler.220371913" name="Compiler" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.compiler">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.1764475068" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include.477145288" name="インクルード・ファイルを検索するフォルダ (-include)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include" useByScannerDiscovery="false" valueType="includePath">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.1764475068" name="Use floating point arithmetic instructions (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include.477145288" name="Include file directories (-include)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${TCINSTALL}/include"/>
|
||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/../common""/>
|
||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/../../../../../../""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_bsp}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_config}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_tsip_rx}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_tsip_rx/src/targets/rx65n}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_cmt_rx}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_cmt_rx/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_t4_driver_rx}""/>
|
||||
@@ -63,54 +62,54 @@
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_pincfg}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/Config_TMR0}""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.define.511269805" name="プリプロセッサ・マクロの定義 (-define)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.define" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.define.511269805" name="Macro definition (-define)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.define" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="DEBUG_CONSOLE"/>
|
||||
<listOptionValue builtIn="false" value="WOLFSSL_USER_SETTINGS"/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore.165256012" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore.165256012" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter.850666858" name="追加するオプション(すべての指定オプションの後ろに追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter.850666858" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.897672730" name="Cソース (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.c99" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.862144636" name="プログラムの文字コード (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.utf8" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.48690443" name="出力する文字コード (-outcode)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.utf8" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize.1557621233" name="最適化レベル (-optimize)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize.level0" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.897672730" name="C source file (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.c99" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.862144636" name="Character code of an input program (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.utf8" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.48690443" name="Output character code (-outcode)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.utf8" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize.1557621233" name="Optimization level (-optimize)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize.level0" valueType="enumerated"/>
|
||||
<inputType id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gcc.inputType.1722484558" name="Compiler Input C" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gcc.inputType"/>
|
||||
<inputType id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gpp.inputType.709788007" name="Compiler Input CPP" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gpp.inputType"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.assembler.1564576801" name="Assembler" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.assembler">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore.1555827005" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore.1555827005" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter.912893655" name="追加するオプション(すべての指定オプションの後ろに追加) " superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter.912893655" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.864537553" name="プログラムの文字コード (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.utf8" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.include.1616986135" name="インクルード・ファイルを検索するフォルダ (-include)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.include" useByScannerDiscovery="false" valueType="includePath">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.864537553" name="Character code of an input program (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.utf8" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.include.1616986135" name="Include file directories (-include)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.include" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/general}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_pincfg}""/>
|
||||
</option>
|
||||
<inputType id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.inputType.502444415" name="Assembler InputType" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.inputType"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.linker.1333901009" name="Linker" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.linker">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom.2020069967" name="ROMからRAMへマップするセクション (-rom)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom.2020069967" name="ROM to RAM mapped section (-rom)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="D=R"/>
|
||||
<listOptionValue builtIn="false" value="D_1=R_1"/>
|
||||
<listOptionValue builtIn="false" value="D_2=R_2"/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection.2043161263" name="セクション (-start)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection" useByScannerDiscovery="false" value="SU,SI,B_1,R_1,B_2,R_2,B,R/04,B_ETHERNET_BUFFERS_1,B_RX_DESC_1,B_TX_DESC_1/020000,C_1,C_2,C,C$*,D*,W*,L,P*/0FFE00000,EXCEPTVECT/0FFFFFF80,RESETVECT/0FFFFFFFC" valueType="string"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore.1452234640" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection.2043161263" name="Sections (-start)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection" useByScannerDiscovery="false" value="SU,SI,B_1,R_1,B_2,R_2,B,R/04,B_ETHERNET_BUFFERS_1,B_RX_DESC_1,B_TX_DESC_1/03C000,C_1,C_2,C,C$*,D*,W*,L,P/0FFE00000,EXCEPTVECT/0FFFFFF80,RESETVECT/0FFFFFFFC" valueType="string"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore.1452234640" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter.1724535779" name="追加するオプション(すべての指定オプションの後ろに追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter.1724535779" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.vect.47410515" name="可変ベクタテーブルのアドレス未設定ベクタ番号に指定するアドレス (-vect)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.vect" useByScannerDiscovery="false" value="_undefined_interrupt_source_isr" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection.239094904" name="セクションの割り付けアドレスをチェックする (-cpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.1942768497" name="アドレス範囲指定方法 (-cpu(アドレス範囲指定方法))" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.autoSpecify" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList.1237940973" name="(リンク順序のリスト) (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.vect.47410515" name="Address setting for unused vector area (-vect)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.vect" useByScannerDiscovery="false" value="_undefined_interrupt_source_isr" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection.239094904" name="Checks the section larger than the specified range of addresses (-cpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.1942768497" name="Memory address type assignment method (-cpu(Address space of Single-Chip Mode))" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.autoSpecify" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList.1237940973" name="(Linkage order list) (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="".\src\benchmark.obj""/>
|
||||
<listOptionValue builtIn="false" value="".\src\key_data.obj""/>
|
||||
<listOptionValue builtIn="false" value="".\src/smc_gen/Config_TMR0\Config_TMR0.obj""/>
|
||||
@@ -159,31 +158,31 @@
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_tsip_rx/lib/ccrx/r_tsip_rx65n_little.lib}""/>
|
||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/../wolfssl/Debug/wolfssl.lib""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.inputFile.1438206933" name="リンクするリロケータブル・ファイル、ライブラリ・ファイルおよびバイナリ・ファイル (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.inputFile" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.inputFile.1438206933" name="Relocatable files, object files and library files (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.inputFile" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_t4_rx/lib/ccrx/T4_Library_ether_ccrx_rxv1_little_debug.lib}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_tsip_rx/lib/ccrx/r_tsip_rx65n_little.lib}""/>
|
||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/../wolfssl/Debug/wolfssl.lib""/>
|
||||
</option>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.librarian.1723543812" name="Library Generator" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.librarian">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.1397073307" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore.1773409552" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.1397073307" name="Use floating point arithmetic instructions (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore.1773409552" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter.946493093" name="追加するオプション(すべての指定オプションの後ろに追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter.946493093" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang.338617005" name="C言語標準ライブラリ関数の構成 (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang.c99" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.headCtype.1293885198" name="ctype.h(C89/C99):文字操作用ライブラリ (-head=ctype)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.headCtype" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang.338617005" name="Library configuration (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang.c99" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.headCtype.1293885198" name="ctype.h (C89/C99): Character classification routines (-head=ctype)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.headCtype" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.converter.1917108303" name="Converter" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.converter">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore.109845398" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore.109845398" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter.289006348" name="追加するオプション(すべての指定オプションの後ろに追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter.289006348" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile.230415631" name="出力ファイル形式 (-form)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOFOutputFile.none" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile.230415631" name="Output file type (-form)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOFOutputFile.none" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.rtosConfig.318974000" name="RTOS Configurator" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.rtosConfig"/>
|
||||
</toolChain>
|
||||
@@ -194,7 +193,11 @@
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
<storageModule moduleId="com.renesas.cdt.managedbuild.core.boardInfo"/>
|
||||
<storageModule moduleId="com.renesas.cdt.managedbuild.core.boardInfo">
|
||||
<option id="board.id" value="gr-rose"/>
|
||||
<option id="board.name" value="gr-rose"/>
|
||||
<option id="board.device" value="R5F565NEHxFP"/>
|
||||
</storageModule>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.renesas.cdt.managedbuild.renesas.ccrx.debug.configuration.992474000">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.renesas.cdt.managedbuild.renesas.ccrx.debug.configuration.992474000" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
@@ -218,13 +221,13 @@
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE" id="com.renesas.cdt.managedbuild.renesas.ccrx.base.targetPlatform.617132481" osList="win32" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.targetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/test}/Debug" id="com.renesas.cdt.managedbuild.renesas.ccrx.base.builder.117543810" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CCRX Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.builder"/>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.dsp.1744140894" name="DSP Assembler" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.dsp">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo.1464228342" name="デバッグ情報を出力する (-no_debug_info)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.733005442" name="出力するデータ値のエンディアン (-littleEndianData)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.big" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo.1464228342" name="Output debug information (-no_debug_info)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.733005442" name="Endian of output data value (-littleEndianData)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.big" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.common.1294844059" name="Common" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.common">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.644795578" name="命令セット・アーキテクチャ (-isa)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.rxv2" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.644795578" name="Instruction set architecture (-isa)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.rxv2" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.rxArchitecture.1771586719" name="RX Architecture" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.rxArchitecture" useByScannerDiscovery="false" value="rxv2" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.1045346284" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.yes" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.1045346284" name="Use floating point arithmetic instructions (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.yes" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasFpu.229476184" name="Has FPU" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasFpu" useByScannerDiscovery="false" value="TRUE" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceName.748972653" name="Device Name" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceName" useByScannerDiscovery="false" value="R5F565NEHxFP" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory.780008434" name="Device history" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory" useByScannerDiscovery="false" value="non_init;R5F565NEHxFP" valueType="string"/>
|
||||
@@ -235,8 +238,8 @@
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily.1280023203" name="Device Family" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily" useByScannerDiscovery="false" value="RX65N" valueType="string"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.compiler.278830907" name="Compiler" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.compiler">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.2144484247" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include.545347560" name="インクルード・ファイルを検索するフォルダ (-include)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include" valueType="includePath">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.2144484247" name="Use floating point arithmetic instructions (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include.545347560" name="Include file directories (-include)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${TCINSTALL}/include"/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_bsp}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_config}""/>
|
||||
@@ -255,77 +258,78 @@
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_sys_time_rx/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/general}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_pincfg}""/>
|
||||
<listOptionValue builtIn="false" value="${ProjDirPath}/generate"/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.define.935611572" name="プリプロセッサ・マクロの定義 (-define)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.define" valueType="definedSymbols">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.define.935611572" name="Macro definition (-define)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.define" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="DEBUG_CONSOLE"/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore.878126292" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore.878126292" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter.443993930" name="追加するオプション(すべての指定オプションの後ろに追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter.443993930" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.47850385" name="Cソース (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.c99" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.24533273" name="プログラムの文字コード (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.utf8" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.542364588" name="出力する文字コード (-outcode)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.utf8" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.47850385" name="C source file (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.c99" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.24533273" name="Character code of an input program (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.utf8" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.542364588" name="Output character code (-outcode)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.utf8" valueType="enumerated"/>
|
||||
<inputType id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gcc.inputType.1919404628" name="Compiler Input C" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gcc.inputType"/>
|
||||
<inputType id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gpp.inputType.293530100" name="Compiler Input CPP" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gpp.inputType"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.assembler.607581328" name="Assembler" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.assembler">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore.622904140" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore.622904140" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter.67379527" name="追加するオプション(すべての指定オプションの後ろに追加) " superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter.67379527" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.1186358257" name="プログラムの文字コード (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.utf8" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.include.1360045103" name="インクルード・ファイルを検索するフォルダ (-include)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.include" valueType="includePath">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.1186358257" name="Character code of an input program (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.utf8" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.include.1360045103" name="Include file directories (-include)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.include" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/general}""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_pincfg}""/>
|
||||
</option>
|
||||
<inputType id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.inputType.1482916460" name="Assembler InputType" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.inputType"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.linker.1516159151" name="Linker" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.linker">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom.1765662172" name="ROMからRAMへマップするセクション (-rom)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom.1765662172" name="ROM to RAM mapped section (-rom)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="D=R"/>
|
||||
<listOptionValue builtIn="false" value="D_1=R_1"/>
|
||||
<listOptionValue builtIn="false" value="D_2=R_2"/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection.1046231838" name="セクション (-start)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection" useByScannerDiscovery="false" value="SU,SI,B_1,R_1,B_2,R_2,B,R/04,C_1,C_2,C,C$*,D*,W*,L,P*/0FFE00000,EXCEPTVECT/0FFFFFF80,RESETVECT/0FFFFFFFC,B_ETHERNET_BUFFERS_1,B_RX_DESC_1,B_TX_DESC_1/00010000" valueType="string"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore.1651005552" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection.1046231838" name="Sections (-start)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection" useByScannerDiscovery="false" value="SU,SI,B_1,R_1,B_2,R_2,B,R/04,C_1,C_2,C,C$*,D*,W*,L,P*/0FFE00000,EXCEPTVECT/0FFFFFF80,RESETVECT/0FFFFFFFC,B_ETHERNET_BUFFERS_1,B_RX_DESC_1,B_TX_DESC_1/00010000" valueType="string"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore.1651005552" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter.40118921" name="追加するオプション(すべての指定オプションの後ろに追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter.40118921" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.vect.1524833684" name="可変ベクタテーブルのアドレス未設定ベクタ番号に指定するアドレス (-vect)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.vect" useByScannerDiscovery="false" value="_undefined_interrupt_source_isr" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection.1914971075" name="セクションの割り付けアドレスをチェックする (-cpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.1670384649" name="アドレス範囲指定方法 (-cpu(アドレス範囲指定方法))" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.autoSpecify" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList.1556433699" name="(リンク順序のリスト) (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList" valueType="stringList">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.vect.1524833684" name="Address setting for unused vector area (-vect)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.vect" useByScannerDiscovery="false" value="_undefined_interrupt_source_isr" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection.1914971075" name="Checks the section larger than the specified range of addresses (-cpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.1670384649" name="Memory address type assignment method (-cpu(Address space of Single-Chip Mode))" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.autoSpecify" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList.1556433699" name="(Linkage order list) (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="".\test.lib""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.inputFile.856176867" name="リンクするリロケータブル・ファイル、ライブラリ・ファイルおよびバイナリ・ファイル (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.inputFile" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.inputFile.856176867" name="Relocatable files, object files and library files (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.inputFile" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src/smc_gen/r_t4_rx/lib/T4_Library_rxv1_ether_little.lib}""/>
|
||||
</option>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.librarian.1598250045" name="Library Generator" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.librarian">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.665362864" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore.413642487" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.665362864" name="Use floating point arithmetic instructions (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore.413642487" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter.322853429" name="追加するオプション(すべての指定オプションの後ろに追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter.322853429" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang.1591825359" name="C言語標準ライブラリ関数の構成 (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang.c99" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang.1591825359" name="Library configuration (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.lang.c99" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.converter.175269062" name="Converter" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.converter">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore.1586351233" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore.1586351233" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter.900284814" name="追加するオプション(すべての指定オプションの後ろに追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter.900284814" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile.2141918916" name="出力ファイル形式 (-form)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile" value="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOFOutputFile.none" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile.2141918916" name="Output file type (-form)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile" value="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOFOutputFile.none" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.rtosConfig.1118615463" name="RTOS Configurator" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.rtosConfig"/>
|
||||
</toolChain>
|
||||
@@ -336,6 +340,11 @@
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
<storageModule moduleId="com.renesas.cdt.managedbuild.core.boardInfo">
|
||||
<option id="board.id" value="gr-rose"/>
|
||||
<option id="board.name" value="gr-rose"/>
|
||||
<option id="board.device" value="R5F565NEHxFP"/>
|
||||
</storageModule>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
|
||||
@@ -32,12 +32,12 @@
|
||||
<link>
|
||||
<name>src/benchmark.c</name>
|
||||
<type>1</type>
|
||||
<locationURI>$%7BPARENT-6-PROJECT_LOC%7D/wolfcrypt/benchmark/benchmark.c</locationURI>
|
||||
<locationURI>PARENT-6-PROJECT_LOC/wolfcrypt/benchmark/benchmark.c</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/benchmark.h</name>
|
||||
<type>1</type>
|
||||
<locationURI>$%7BPARENT-6-PROJECT_LOC%7D/wolfcrypt/benchmark/benchmark.h</locationURI>
|
||||
<locationURI>PARENT-6-PROJECT_LOC/wolfcrypt/benchmark/benchmark.h</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>src/test.c</name>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* key_data.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -71,12 +71,66 @@ const st_key_block_data_t g_key_block_data =
|
||||
},
|
||||
/* uint8_t encrypted_user_update_key[R_TSIP_AES256_KEY_BYTE_SIZE + 16]; */
|
||||
{
|
||||
0x79, 0xB6, 0x8C, 0x48, 0x0A, 0xF2, 0x09, 0xF5, 0xD9, 0x66, 0xBE, 0x9F,
|
||||
0xD1, 0x7A, 0x93, 0x52, 0x26, 0x76, 0x6B, 0xB8, 0xF6, 0xB3, 0x88, 0xA6,
|
||||
0x4F, 0x6F, 0xB3, 0xF4, 0x8D, 0x83, 0x8F, 0xA0, 0x4A, 0x14, 0xAE, 0xF3,
|
||||
0xCB, 0x00, 0x1A, 0x0B, 0xB5, 0xE6, 0x65, 0x83, 0x2A, 0x5A, 0x16, 0x8B
|
||||
0
|
||||
},
|
||||
/* uint8_t
|
||||
* encrypted_user_rsa2048_private_key[R_TSIP_RSA2048_ND_KEY_BYTE_SIZE + 16]
|
||||
*/
|
||||
{
|
||||
0x22, 0xEC, 0xE3, 0x79, 0xD1, 0x0C, 0xB4, 0xED, 0xE0, 0xA9, 0x0F, 0xBD,
|
||||
0xC7, 0x0B, 0xB4, 0x1E, 0x82, 0x27, 0x79, 0x20, 0x6A, 0x15, 0x56, 0xD6,
|
||||
0x0F, 0xFA, 0xE4, 0x61, 0x04, 0xDA, 0x81, 0x33, 0x42, 0xBA, 0x6D, 0xB9,
|
||||
0x34, 0x81, 0xFD, 0x67, 0xDF, 0x1D, 0xCB, 0x52, 0x64, 0x9A, 0x2E, 0x30,
|
||||
0x12, 0x60, 0xCB, 0x48, 0x27, 0xB6, 0x38, 0x0B, 0x54, 0x5A, 0x70, 0xCB,
|
||||
0x6F, 0x05, 0x53, 0x46, 0x8B, 0x08, 0x86, 0x24, 0xCB, 0xA2, 0x36, 0x54,
|
||||
0xCD, 0xC9, 0x61, 0x37, 0x43, 0xCB, 0xCC, 0x7C, 0x6B, 0x20, 0x07, 0xB6,
|
||||
0x01, 0x96, 0x32, 0xF5, 0x30, 0x0E, 0x96, 0x05, 0xC4, 0xF5, 0xF0, 0xB0,
|
||||
0xD3, 0x26, 0xAF, 0x6E, 0x39, 0x01, 0x2D, 0xAC, 0x7E, 0x39, 0xCF, 0x48,
|
||||
0x74, 0x7D, 0x98, 0x00, 0xA6, 0x95, 0xDA, 0x4C, 0xAC, 0x81, 0xC7, 0x9A,
|
||||
0x93, 0x69, 0x23, 0xD4, 0x39, 0xCD, 0xB3, 0x62, 0x4A, 0x4A, 0x26, 0x95,
|
||||
0x51, 0xE1, 0x06, 0x8F, 0xB2, 0x3C, 0x8F, 0xDE, 0xF1, 0xC3, 0x69, 0xFC,
|
||||
0xF5, 0xC3, 0xCE, 0x39, 0x3F, 0x7F, 0x2D, 0xA8, 0x8B, 0xB3, 0x2D, 0xE4,
|
||||
0xB8, 0xA4, 0x19, 0x55, 0x29, 0xEC, 0x9C, 0x6A, 0xD7, 0xD7, 0x45, 0x3E,
|
||||
0x1D, 0x18, 0x52, 0xB5, 0x8A, 0xB1, 0x26, 0x43, 0x8C, 0x7A, 0x65, 0xF1,
|
||||
0x17, 0x5E, 0x75, 0x4A, 0x1A, 0x30, 0xD8, 0xEA, 0xC2, 0x19, 0x3C, 0x1E,
|
||||
0x2E, 0xFB, 0xDB, 0xC9, 0x1F, 0x73, 0xC9, 0x95, 0x53, 0x8C, 0x99, 0x5D,
|
||||
0x3B, 0x59, 0xFE, 0x8B, 0xA1, 0xD2, 0xBB, 0xBC, 0xBC, 0x4B, 0x78, 0x0A,
|
||||
0x6B, 0xD8, 0xBE, 0x85, 0x60, 0x08, 0x1E, 0x2F, 0x38, 0x77, 0xA3, 0xC4,
|
||||
0x46, 0xC1, 0x42, 0x39, 0xA6, 0x59, 0x98, 0x59, 0x21, 0x94, 0x1F, 0xDC,
|
||||
0xB3, 0xAE, 0xA3, 0xB6, 0xCC, 0x35, 0x82, 0x6F, 0x87, 0x58, 0x91, 0x70,
|
||||
0xEC, 0x3F, 0x05, 0x86, 0x3C, 0xD1, 0x83, 0xB0, 0xBA, 0xE8, 0xD7, 0xF6,
|
||||
0xE5, 0x9E, 0x50, 0xA4, 0x04, 0xF3, 0x95, 0x9C, 0x41, 0xAF, 0xEB, 0x9D,
|
||||
0xB6, 0xA2, 0xF7, 0x80, 0x5A, 0xC4, 0x67, 0xD4, 0xFD, 0x0C, 0x2A, 0x7C,
|
||||
0x24, 0x03, 0xE5, 0x7F, 0x08, 0x69, 0x18, 0x4E, 0x33, 0x22, 0x7E, 0x03,
|
||||
0x8E, 0x13, 0xFB, 0xC6, 0x9B, 0xA3, 0x44, 0x5B, 0xEC, 0xF9, 0x5C, 0x93,
|
||||
0x3E, 0x9F, 0xBD, 0x72, 0x50, 0x52, 0xF3, 0xEA, 0x34, 0x2B, 0x8E, 0xEC,
|
||||
0x17, 0x42, 0x1A, 0xDF, 0x57, 0xA2, 0x66, 0xA7, 0x0B, 0x3B, 0xE5, 0xF7,
|
||||
0x64, 0x44, 0xA2, 0xA3, 0x5F, 0xB7, 0x5B, 0xF5, 0x99, 0x8C, 0xA0, 0x64,
|
||||
0x04, 0x46, 0x7C, 0x60, 0x75, 0xE4, 0xD9, 0xD5, 0xED, 0x21, 0x1D, 0x65,
|
||||
0x5D, 0x25, 0x21, 0x90, 0x7D, 0xA4, 0x95, 0x15, 0x54, 0x91, 0xD6, 0xB8,
|
||||
0xF9, 0xB7, 0x30, 0xD9, 0x7D, 0x2C, 0x7E, 0x85, 0x6A, 0xCF, 0x31, 0x1C,
|
||||
0xDC, 0x90, 0xA3, 0x75, 0xA4, 0xE4, 0x89, 0x5F, 0x2B, 0xED, 0x93, 0x4E,
|
||||
0xA8, 0x35, 0xD3, 0x20, 0x36, 0x7A, 0x02, 0x23, 0x70, 0xB7, 0xC2, 0x39,
|
||||
0xA4, 0x69, 0xB2, 0xBF, 0xA4, 0x3A, 0x6D, 0xB7, 0xB1, 0x32, 0x32, 0x9A,
|
||||
0x95, 0xEA, 0x02, 0xD2, 0x35, 0xE7, 0x8C, 0xD8, 0x22, 0xA9, 0xC3, 0x4C,
|
||||
0x68, 0x09, 0xA1, 0x2B, 0xB0, 0xE4, 0x55, 0x72, 0x7E, 0xE6, 0x00, 0xDD,
|
||||
0xC6, 0xD1, 0x83, 0x56, 0x08, 0x35, 0xC7, 0x9A, 0x98, 0x0C, 0x79, 0xBD,
|
||||
0x49, 0xBC, 0x3F, 0x45, 0x4A, 0x38, 0x1B, 0x55, 0x2D, 0x52, 0x57, 0x00,
|
||||
0xFC, 0xDB, 0xE7, 0xA0, 0x53, 0xB4, 0x63, 0xE4, 0x37, 0xEC, 0x9F, 0xF0,
|
||||
0xA4, 0x0F, 0xEF, 0x06, 0xF0, 0xC6, 0x5F, 0x0C, 0x4A, 0xB8, 0xC1, 0x96,
|
||||
0x1D, 0x0D, 0x9A, 0x43, 0x89, 0xA4, 0xF6, 0x55, 0x4A, 0x83, 0x54, 0x3F,
|
||||
0xCC, 0x09, 0x65, 0x34, 0xC0, 0x0F, 0x42, 0xF2, 0xE6, 0xDD, 0x2D, 0x8C,
|
||||
0x93, 0x42, 0x09, 0xF6, 0xE4, 0xDF, 0xB2, 0x64, 0x2A, 0x12, 0x7A, 0x59
|
||||
},
|
||||
/* uint8_t
|
||||
* encrypted_user_ecc256_private_key[R_TSIP_ECC_PRIVATE_KEY_BYTE_SIZE + 16];
|
||||
*/
|
||||
{
|
||||
0x25, 0x7A, 0x0C, 0x8C, 0x9B, 0xF9, 0x3C, 0xF5, 0x49, 0x08, 0x86, 0x92,
|
||||
0x00, 0x7D, 0xAB, 0x21, 0x23, 0x38, 0xF8, 0xEA, 0xB0, 0x95, 0x59, 0x9B,
|
||||
0x04, 0xC8, 0xAA, 0xEA, 0x8C, 0x2D, 0x68, 0xF4, 0xD5, 0xD7, 0xA9, 0x6F,
|
||||
0x2C, 0x8C, 0x13, 0x93, 0xA3, 0x80, 0x11, 0xF9, 0x0F, 0x36, 0x14, 0xA8
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
/* Public key type of CA root cert: 0: RSA-2048 2: ECDSA-P256*/
|
||||
|
||||
@@ -38,6 +38,8 @@ typedef struct st_key_block_data
|
||||
uint8_t iv[R_TSIP_AES_CBC_IV_BYTE_SIZE];
|
||||
uint8_t encrypted_user_rsa2048_ne_key[R_TSIP_RSA2048_NE_KEY_BYTE_SIZE + 16];
|
||||
uint8_t encrypted_user_update_key[R_TSIP_AES256_KEY_BYTE_SIZE + 16];
|
||||
uint8_t encrypted_user_rsa2048_private_key[R_TSIP_RSA2048_ND_KEY_BYTE_SIZE + 16];
|
||||
uint8_t encrypted_user_ecc256_private_key[R_TSIP_ECC_PRIVATE_KEY_BYTE_SIZE + 16];
|
||||
} st_key_block_data_t;
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* test_main.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -52,6 +52,17 @@ extern "C" {
|
||||
user_PKCbInfo guser_PKCbInfo;
|
||||
#endif
|
||||
|
||||
#if defined(TLS_CLIENT)
|
||||
#if defined(WOLFSSL_RENESAS_TSIP_TLS) && defined(WOLFSSL_STATIC_MEMORY)
|
||||
#include <wolfssl/wolfcrypt/memory.h>
|
||||
WOLFSSL_HEAP_HINT* heapHint = NULL;
|
||||
|
||||
#define BUFFSIZE_GEN (110 * 1024)
|
||||
unsigned char heapBufGen[BUFFSIZE_GEN];
|
||||
|
||||
#endif /* WOLFSSL_RENESAS_TSIP_TLS && WOLFSSL_STATIC_MEMORY */
|
||||
#endif /* TLS_CLIENT */
|
||||
|
||||
static long tick;
|
||||
static void timeTick(void *pdata)
|
||||
{
|
||||
@@ -96,9 +107,6 @@ int SetTsiptlsKey()
|
||||
(byte*)&g_key_block_data.encrypted_user_rsa2048_ne_key,
|
||||
encrypted_user_key_type);
|
||||
|
||||
#if defined(WOLFSSL_RENESAS_TSIP_TLS)
|
||||
guser_PKCbInfo.user_key_id = 0;
|
||||
#endif
|
||||
|
||||
#elif defined(TLS_SERVER)
|
||||
|
||||
@@ -190,13 +198,26 @@ void main(void)
|
||||
defined(TLS_CLIENT)
|
||||
#ifdef USE_ECC_CERT
|
||||
const char* cipherlist[] = {
|
||||
#if defined(WOLFSSL_TLS13)
|
||||
"TLS13-AES128-GCM-SHA256",
|
||||
"TLS13-AES128-CCM-SHA256",
|
||||
#endif
|
||||
"ECDHE-ECDSA-AES128-GCM-SHA256",
|
||||
"ECDHE-ECDSA-AES128-SHA256"
|
||||
};
|
||||
const int cipherlist_sz = 2;
|
||||
int cipherlist_sz;
|
||||
#if defined(WOLFSSL_TLS13)
|
||||
cipherlist_sz = 2;
|
||||
#else
|
||||
cipherlist_sz = 2;
|
||||
#endif
|
||||
|
||||
#else
|
||||
const char* cipherlist[] = {
|
||||
#if defined(WOLFSSL_TLS13)
|
||||
"TLS13-AES128-GCM-SHA256",
|
||||
"TLS13-AES128-CCM-SHA256",
|
||||
#endif
|
||||
"ECDHE-RSA-AES128-GCM-SHA256",
|
||||
"ECDHE-RSA-AES128-SHA256",
|
||||
"AES128-SHA",
|
||||
@@ -204,7 +225,12 @@ void main(void)
|
||||
"AES256-SHA",
|
||||
"AES256-SHA256"
|
||||
};
|
||||
const int cipherlist_sz = 6;
|
||||
int cipherlist_sz;
|
||||
#if defined(WOLFSSL_TLS13)
|
||||
cipherlist_sz = 2;
|
||||
#else
|
||||
cipherlist_sz = 6;
|
||||
#endif /* WOLFSSL_TLS13 */
|
||||
|
||||
#endif
|
||||
#endif
|
||||
@@ -243,6 +269,15 @@ void main(void)
|
||||
#elif defined(TLS_CLIENT)
|
||||
#include "r_cmt_rx_if.h"
|
||||
|
||||
|
||||
#if defined(WOLFSSL_STATIC_MEMORY)
|
||||
if (wc_LoadStaticMemory(&heapHint, heapBufGen, sizeof(heapBufGen),
|
||||
WOLFMEM_GENERAL, 1) !=0) {
|
||||
printf("unable to load static memory.\n");
|
||||
return;
|
||||
}
|
||||
#endif /* WOLFSSL_STATIC_MEMORY */
|
||||
|
||||
Open_tcp();
|
||||
|
||||
#if defined(WOLFSSL_RENESAS_TSIP_TLS)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wolf_client.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -29,7 +29,7 @@
|
||||
#include "wolfssl_demo.h"
|
||||
|
||||
|
||||
#define SIMPLE_TLSSEVER_IP "192.168.11.32"
|
||||
#define SIMPLE_TLSSEVER_IP "192.168.1.12"
|
||||
#define SIMPLE_TLSSERVER_PORT "11111"
|
||||
|
||||
ER t4_tcp_callback(ID cepid, FN fncd , VP p_parblk);
|
||||
@@ -41,6 +41,17 @@ uint32_t g_encrypted_root_public_key[140];
|
||||
static TsipUserCtx userContext;
|
||||
#endif
|
||||
|
||||
#if defined(TLS_CLIENT)
|
||||
#if defined(WOLFSSL_RENESAS_TSIP_TLS) && defined(WOLFSSL_STATIC_MEMORY)
|
||||
|
||||
extern WOLFSSL_HEAP_HINT* heapHint;
|
||||
|
||||
#define BUFFSIZE_IO (16 * 1024)
|
||||
unsigned char heapBufIO[BUFFSIZE_IO];
|
||||
|
||||
#endif /* WOLFSSL_RENESAS_TSIP_TLS && WOLFSSL_STATIC_MEMORY */
|
||||
#endif /* TLS_CLIENT */
|
||||
|
||||
static int my_IORecv(WOLFSSL* ssl, char* buff, int sz, void* ctx)
|
||||
{
|
||||
int ret;
|
||||
@@ -115,11 +126,29 @@ void wolfSSL_TLS_client_init(const char* cipherlist)
|
||||
wolfSSL_Debugging_ON();
|
||||
#endif
|
||||
|
||||
#if defined(WOLFSSL_STATIC_MEMORY)
|
||||
|
||||
if ((client_ctx = wolfSSL_CTX_new_ex(wolfSSLv23_client_method_ex(heapHint),
|
||||
heapHint)) == NULL) {
|
||||
printf("ERROR: faild to create WOLFSSL_CTX\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if ((wolfSSL_CTX_load_static_memory(&client_ctx, NULL, heapBufIO,
|
||||
sizeof(heapBufIO), WOLFMEM_IO_POOL, 10)) != WOLFSSL_SUCCESS) {
|
||||
printf("ERROR: faild to set static memory for IO\n");
|
||||
return;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
/* Create and initialize WOLFSSL_CTX */
|
||||
if ((client_ctx = wolfSSL_CTX_new(wolfTLSv1_2_client_method_ex((void *)NULL))) == NULL) {
|
||||
if ((client_ctx =
|
||||
wolfSSL_CTX_new(wolfSSLv23_client_method_ex((void *)NULL))) == NULL) {
|
||||
printf("ERROR: failed to create WOLFSSL_CTX\n");
|
||||
return;
|
||||
}
|
||||
#endif /* WOLFSSL_STATIC_MEMORY */
|
||||
|
||||
#ifdef WOLFSSL_RENESAS_TSIP_TLS
|
||||
tsip_set_callbacks(client_ctx);
|
||||
@@ -128,15 +157,76 @@ void wolfSSL_TLS_client_init(const char* cipherlist)
|
||||
#if !defined(NO_FILESYSTEM)
|
||||
if (wolfSSL_CTX_load_verify_locations(client_ctx, cert, 0) != SSL_SUCCESS) {
|
||||
printf("ERROR: can't load \"%s\"\n", cert);
|
||||
return NULL;
|
||||
return;
|
||||
}
|
||||
#else
|
||||
if (wolfSSL_CTX_load_verify_buffer(client_ctx, cert, SIZEOF_CERT, SSL_FILETYPE_ASN1) != SSL_SUCCESS){
|
||||
if (wolfSSL_CTX_load_verify_buffer(client_ctx, cert, SIZEOF_CERT,
|
||||
SSL_FILETYPE_ASN1) != SSL_SUCCESS){
|
||||
printf("ERROR: can't load certificate data\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* load client certificate */
|
||||
#ifdef USE_ECC_CERT
|
||||
if (wolfSSL_CTX_use_certificate_chain_buffer_format(client_ctx,
|
||||
cliecc_cert_der_256,
|
||||
sizeof_cliecc_cert_der_256,
|
||||
WOLFSSL_FILETYPE_ASN1) != SSL_SUCCESS) {
|
||||
printf("ERROR: can't load client-certificate\n");
|
||||
return;
|
||||
}
|
||||
|
||||
/* set client private key data */
|
||||
#ifdef WOLFSSL_TLS13
|
||||
#ifdef WOLFSSL_RENESAS_TSIP_TLS
|
||||
if (tsip_set_clientPrivateKeyEnc(
|
||||
g_key_block_data.encrypted_user_ecc256_private_key,
|
||||
TSIP_ECCP256) != 0) {
|
||||
printf("ERROR: can't load client-private key\n");
|
||||
return;
|
||||
}
|
||||
#endif /* WOLFSSL_RENESAS_TSIP_TLS */
|
||||
#else
|
||||
if (wolfSSL_CTX_use_PrivateKey_buffer(client_ctx,
|
||||
ecc_clikey_der_256,
|
||||
sizeof_ecc_clikey_der_256,
|
||||
SSL_FILETYPE_ASN1) != WOLFSSL_SUCCESS) {
|
||||
printf("ERROR: can't load private-key data.\n");
|
||||
return;
|
||||
}
|
||||
#endif /* WOLFSSL_TLS13 */
|
||||
|
||||
#else
|
||||
if (wolfSSL_CTX_use_certificate_chain_buffer_format(client_ctx,
|
||||
client_cert_der_2048,
|
||||
sizeof_client_cert_der_2048,
|
||||
WOLFSSL_FILETYPE_ASN1) != SSL_SUCCESS) {
|
||||
printf("ERROR: can't load client-certificate\n");
|
||||
return;
|
||||
}
|
||||
|
||||
/* set client private key data */
|
||||
#ifdef WOLFSSL_RENESAS_TSIP_TLS
|
||||
if (tsip_set_clientPrivateKeyEnc(
|
||||
g_key_block_data.encrypted_user_rsa2048_private_key,
|
||||
TSIP_RSA2048) != 0) {
|
||||
printf("ERROR: can't load client-private key\n");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (wolfSSL_CTX_use_PrivateKey_buffer(client_ctx, client_key_der_2048,
|
||||
sizeof_client_key_der_2048, SSL_FILETYPE_ASN1)
|
||||
!= WOLFSSL_SUCCESS) {
|
||||
printf("ERROR: can't load private-key data.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
#endif /* USE_ECC_CERT */
|
||||
#endif /* !NO_FILESYSTEM */
|
||||
|
||||
/* Register callbacks */
|
||||
wolfSSL_SetIORecv(client_ctx, my_IORecv);
|
||||
wolfSSL_SetIOSend(client_ctx, my_IOSend);
|
||||
@@ -146,7 +236,17 @@ void wolfSSL_TLS_client_init(const char* cipherlist)
|
||||
wolfSSL_CTX_set_cipher_list(client_ctx, cipherlist) != WOLFSSL_SUCCESS) {
|
||||
wolfSSL_CTX_free(client_ctx); client_ctx = NULL;
|
||||
printf("client can't set cipher list");
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(WOLFSSL_TLS13) && (WOLFSSL_RENESAS_TSIP_VER >= 115)
|
||||
if (wolfSSL_CTX_UseSupportedCurve(client_ctx, WOLFSSL_ECC_SECP256R1)
|
||||
!= WOLFSSL_SUCCESS) {
|
||||
wolfSSL_CTX_free(client_ctx); client_ctx = NULL;
|
||||
printf("client can't set use supported curves\n");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void wolfSSL_TLS_client( )
|
||||
|
||||
@@ -243,21 +243,18 @@
|
||||
<Path>src\smc_gen\r_tsip_rx\readme.txt</Path>
|
||||
<Category Name="doc">
|
||||
<Category Name="en">
|
||||
<Path>src\smc_gen\r_tsip_rx\doc\en\r20an0548ej0114-rx-tsip-security.pdf</Path>
|
||||
<Path>src\smc_gen\r_tsip_rx\doc\en\r20an0548ej0115-rx-tsip-security.pdf</Path>
|
||||
</Category>
|
||||
<Category Name="ja">
|
||||
<Path>src\smc_gen\r_tsip_rx\doc\ja\r20an0548jj0114-rx-tsip-security.pdf</Path>
|
||||
<Path>src\smc_gen\r_tsip_rx\doc\ja\r20an0548jj0115-rx-tsip-security.pdf</Path>
|
||||
</Category>
|
||||
</Category>
|
||||
<Category Name="ref">
|
||||
<Path>src\smc_gen\r_tsip_rx\ref\r_tsip_rx_config_reference.h</Path>
|
||||
</Category>
|
||||
</Category>
|
||||
</Category>
|
||||
</Category>
|
||||
</Files>
|
||||
<Device Category="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.cpu.rx600" Series="RX">R5F565NEHxFP</Device>
|
||||
<BuildOptions Name="CC-RX" Version="v3.03.00">
|
||||
<BuildOptions Name="CC-RX" Version="v3.04.00">
|
||||
<BuildMode Active="True" Name="HardwareDebug">
|
||||
<GeneralOptions/>
|
||||
<CompileOptions>
|
||||
@@ -265,22 +262,21 @@
|
||||
<Option>-fpu</Option>
|
||||
<Option>-include="${ProjDirPath}\..\common"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_bsp"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_config"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_tsip_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx65n"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_cmt_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_cmt_rx\src"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_driver_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_driver_rx\src"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_rx\lib"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_ether_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_sys_time_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_sys_time_rx\src"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\general"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_pincfg"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\Config_TMR0"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_bsp"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_config"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_tsip_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_cmt_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_cmt_rx\src"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_driver_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_driver_rx\src"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_rx\lib"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_ether_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_sys_time_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_sys_time_rx\src"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\general"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_pincfg"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\Config_TMR0"</Option>
|
||||
<Option>-define=DEBUG_CONSOLE,WOLFSSL_USER_SETTINGS</Option>
|
||||
<Option>-utf8</Option>
|
||||
<Option>-nomessage</Option>
|
||||
@@ -296,8 +292,8 @@
|
||||
<AssembleOptions>
|
||||
<Option>-isa=rxv2</Option>
|
||||
<Option>-fpu</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\general"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_pincfg"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\general"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_pincfg"</Option>
|
||||
<Option>-utf8</Option>
|
||||
<Option>-debug</Option>
|
||||
<Option>-nologo</Option>
|
||||
@@ -313,10 +309,10 @@
|
||||
<Option>-rom=D=R,D_1=R_1,D_2=R_2</Option>
|
||||
<Option>-cpu=RAM=00000000-0003ffff,FIX=00080000-00083fff,FIX=00086000-00087fff,FIX=00088000-0009ffff,FIX=000a0000-000a3fff,RAM=000a4000-000a5fff,FIX=000a6000-000bffff,FIX=000c0000-000dffff,FIX=000e0000-000fffff,ROM=00100000-00107fff,FIX=007fc000-007fcfff,FIX=007fe000-007fffff,RAM=00800000-0085ffff,RAM=fe7f5d00-fe7f5d7f,RAM=fe7f7d70-fe7f7d9f,ROM=ffe00000-ffffffff</Option>
|
||||
<Option>-nologo</Option>
|
||||
<Option>-library="${ProjDirPath}/../../../../../../../${ProjName}/src/smc_gen/r_t4_rx/lib/ccrx/T4_Library_ether_ccrx_rxv1_little_debug.lib"</Option>
|
||||
<Option>-library="${ProjDirPath}/../../../../../../../${ProjName}/src/smc_gen/r_tsip_rx/lib/ccrx/r_tsip_rx65n_little.lib"</Option>
|
||||
<Option>-library="${ProjDirPath}/../${ProjName}/src/smc_gen/r_t4_rx/lib/ccrx/T4_Library_ether_ccrx_rxv1_little_debug.lib"</Option>
|
||||
<Option>-library="${ProjDirPath}/../${ProjName}/src/smc_gen/r_tsip_rx/lib/ccrx/r_tsip_rx65n_little.lib"</Option>
|
||||
<Option>-library="${ProjDirPath}/../wolfssl/Debug/wolfssl.lib"</Option>
|
||||
<Option>-start=SU,SI,B_1,R_1,B_2,R_2,B,R/04,B_ETHERNET_BUFFERS_1,B_RX_DESC_1,B_TX_DESC_1/020000,C_1,C_2,C,C$*,D*,W*,L,P*/0FFE00000,EXCEPTVECT/0FFFFFF80,RESETVECT/0FFFFFFFC</Option>
|
||||
<Option>-start=SU,SI,B_1,R_1,B_2,R_2,B,R/04,B_ETHERNET_BUFFERS_1,B_RX_DESC_1,B_TX_DESC_1/03C000,C_1,C_2,C,C$*,D*,W*,L,P/0FFE00000,EXCEPTVECT/0FFFFFF80,RESETVECT/0FFFFFFFC</Option>
|
||||
<PreLinker>Auto</PreLinker>
|
||||
</LinkOptions>
|
||||
<LibraryGenerateOptions>
|
||||
@@ -377,24 +373,23 @@
|
||||
<CommonOptions>
|
||||
<IncludePathForC>"${ProjDirPath}\..\common"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_bsp"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_config"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_tsip_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx65n"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_cmt_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_cmt_rx\src"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_driver_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_driver_rx\src"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_rx\lib"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_ether_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_sys_time_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_sys_time_rx\src"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\general"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_pincfg"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\Config_TMR0"</IncludePathForC>
|
||||
<IncludePathForAsm>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\general"</IncludePathForAsm>
|
||||
<IncludePathForAsm>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_pincfg"</IncludePathForAsm>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_bsp"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_config"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_tsip_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_cmt_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_cmt_rx\src"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_driver_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_driver_rx\src"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_rx\lib"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_ether_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_sys_time_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_sys_time_rx\src"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\general"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_pincfg"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\Config_TMR0"</IncludePathForC>
|
||||
<IncludePathForAsm>"${ProjDirPath}\..\${ProjName}\src\smc_gen\general"</IncludePathForAsm>
|
||||
<IncludePathForAsm>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_pincfg"</IncludePathForAsm>
|
||||
<MacroForC>DEBUG_CONSOLE</MacroForC>
|
||||
<MacroForC>WOLFSSL_USER_SETTINGS</MacroForC>
|
||||
</CommonOptions>
|
||||
@@ -404,23 +399,24 @@
|
||||
<CompileOptions>
|
||||
<Option>-isa=rxv2</Option>
|
||||
<Option>-fpu</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_bsp"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_config"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_tsip_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx231"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx66t"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx65n"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_cmt_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_cmt_rx\src"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_driver_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_driver_rx\src"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_rx\lib"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_ether_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_sys_time_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_sys_time_rx\src"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\general"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_pincfg"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_bsp"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_config"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_tsip_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx231"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx66t"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx65n"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_cmt_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_cmt_rx\src"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_driver_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_driver_rx\src"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_rx\lib"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_ether_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_sys_time_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_sys_time_rx\src"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\general"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_pincfg"</Option>
|
||||
<Option>-include="${ProjDirPath}\generate"</Option>
|
||||
<Option>-define=DEBUG_CONSOLE</Option>
|
||||
<Option>-utf8</Option>
|
||||
<Option>-nomessage</Option>
|
||||
@@ -435,8 +431,8 @@
|
||||
<AssembleOptions>
|
||||
<Option>-isa=rxv2</Option>
|
||||
<Option>-fpu</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\general"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_pincfg"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\general"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\${ProjName}\src\smc_gen\r_pincfg"</Option>
|
||||
<Option>-utf8</Option>
|
||||
<Option>-debug</Option>
|
||||
<Option>-nologo</Option>
|
||||
@@ -452,7 +448,7 @@
|
||||
<Option>-rom=D=R,D_1=R_1,D_2=R_2</Option>
|
||||
<Option>-cpu=RAM=00000000-0003ffff,FIX=00080000-00083fff,FIX=00086000-00087fff,FIX=00088000-0009ffff,FIX=000a0000-000a3fff,RAM=000a4000-000a5fff,FIX=000a6000-000bffff,FIX=000c0000-000dffff,FIX=000e0000-000fffff,ROM=00100000-00107fff,FIX=007fc000-007fcfff,FIX=007fe000-007fffff,RAM=00800000-0085ffff,RAM=fe7f5d00-fe7f5d7f,RAM=fe7f7d70-fe7f7d9f,ROM=ffe00000-ffffffff</Option>
|
||||
<Option>-nologo</Option>
|
||||
<Option>-library="${ProjDirPath}/../../../../../../../${ProjName}/src/smc_gen/r_t4_rx/lib/T4_Library_rxv1_ether_little.lib"</Option>
|
||||
<Option>-library="${ProjDirPath}/../${ProjName}/src/smc_gen/r_t4_rx/lib/T4_Library_rxv1_ether_little.lib"</Option>
|
||||
<Option>-start=SU,SI,B_1,R_1,B_2,R_2,B,R/04,C_1,C_2,C,C$*,D*,W*,L,P*/0FFE00000,EXCEPTVECT/0FFFFFF80,RESETVECT/0FFFFFFFC,B_ETHERNET_BUFFERS_1,B_RX_DESC_1,B_TX_DESC_1/00010000</Option>
|
||||
<PreLinker>Auto</PreLinker>
|
||||
</LinkOptions>
|
||||
@@ -512,25 +508,26 @@
|
||||
<Path>Debug\test.lib</Path>
|
||||
</LinkOrder>
|
||||
<CommonOptions>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_bsp"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_config"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_tsip_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx231"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx66t"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx65n"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_cmt_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_cmt_rx\src"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_driver_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_driver_rx\src"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_t4_rx\lib"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_ether_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_sys_time_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_sys_time_rx\src"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\general"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_pincfg"</IncludePathForC>
|
||||
<IncludePathForAsm>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\general"</IncludePathForAsm>
|
||||
<IncludePathForAsm>"${ProjDirPath}\..\..\..\..\..\..\..\${ProjName}\src\smc_gen\r_pincfg"</IncludePathForAsm>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_bsp"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_config"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_tsip_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx231"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx66t"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_tsip_rx\src\targets\rx65n"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_cmt_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_cmt_rx\src"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_driver_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_driver_rx\src"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_t4_rx\lib"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_ether_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_sys_time_rx"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_sys_time_rx\src"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\general"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_pincfg"</IncludePathForC>
|
||||
<IncludePathForC>"${ProjDirPath}\generate"</IncludePathForC>
|
||||
<IncludePathForAsm>"${ProjDirPath}\..\${ProjName}\src\smc_gen\general"</IncludePathForAsm>
|
||||
<IncludePathForAsm>"${ProjDirPath}\..\${ProjName}\src\smc_gen\r_pincfg"</IncludePathForAsm>
|
||||
<MacroForC>DEBUG_CONSOLE</MacroForC>
|
||||
</CommonOptions>
|
||||
</BuildMode>
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
<stringAttribute key="com.renesas.cdt.core.secondGDBExe" value="green_dsp-elf-gdb"/>
|
||||
<booleanAttribute key="com.renesas.cdt.core.secondGDBSupport" value="false"/>
|
||||
<intAttribute key="com.renesas.cdt.core.secondGdbPortNumber" value="61237"/>
|
||||
<stringAttribute key="com.renesas.cdt.core.serverParam" value="-g E1 -t R5F565NE -uClockSrcHoco= 0 -uInputClock= 12.0000 -uAllowClockSourceInternal= 1 -uUseFine= 1 -uFineBaudRate= 2.00 -w 1 -z 0 -uRegisterSetting= 0 -uModePin= 0 -uChangeStartupBank= 0 -uStartupBank= 0 -uDebugMode= 0 -uExecuteProgram= 0 -uIdCode= FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -uresetOnReload= 1 -n 0 -uWorkRamAddress= 1000 -uProgReWriteIRom= 0 -uProgReWriteDFlash= 0 -uhookWorkRamAddr= 0x3fdd0 -uhookWorkRamSize= 0x230"/>
|
||||
<stringAttribute key="com.renesas.cdt.core.serverParam" value="-g E1 -t R5F565NE -uClockSrcHoco= 1 -uAllowClockSourceInternal= 1 -uUseFine= 1 -uFineBaudRate= 2.00 -w 1 -z 0 -uRegisterSetting= 0 -uModePin= 0 -uChangeStartupBank= 0 -uStartupBank= 0 -uDebugMode= 0 -uExecuteProgram= 0 -uIdCode= FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -uresetOnReload= 1 -n 0 -uWorkRamAddress= 1000 -uverifyOnWritingMemory= 0 -uProgReWriteIRom= 0 -uProgReWriteDFlash= 0 -uhookWorkRamAddr= 0x3fdd0 -uhookWorkRamSize= 0x230"/>
|
||||
<booleanAttribute key="com.renesas.cdt.core.startServer" value="true"/>
|
||||
<stringAttribute key="com.renesas.cdt.core.targetDevice" value="R5F565NE"/>
|
||||
<booleanAttribute key="com.renesas.cdt.core.useRemoteTarget" value="true"/>
|
||||
<booleanAttribute key="com.renesas.cdt.core.verboseMode" value="false"/>
|
||||
<stringAttribute key="com.renesas.cdt.debug.ioview.dsf.registerSelection0" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <selectedRegisterList ioFilePath="C:\Users\Taka\.eclipse\com.renesas.platform_1380223289\DebugComp\RX\IoFiles\RX65N.sfrx"/> "/>
|
||||
<stringAttribute key="com.renesas.cdt.debug.ioview.dsf.registerSelection0" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <selectedRegisterList ioFilePath="C:\Users\Taka\.eclipse\com.renesas.platform_923020927\DebugComp\RX\IoFiles\RX65N.sfrx"/> "/>
|
||||
<stringAttribute key="com.renesas.cdt.launch.dsf.IO_MAP" value="${support_area_loc}"/>
|
||||
<booleanAttribute key="com.renesas.cdt.launch.dsf.USE_DEFAULT_IO_MAP" value="true"/>
|
||||
<listAttribute key="com.renesas.cdt.launch.dsf.downloadImages">
|
||||
@@ -36,7 +36,7 @@
|
||||
<stringAttribute key="com.renesas.cdt.launch.dsf.serverPath" value="${renesas.support.targetLoc:rx-debug}\e2-server-gdb"/>
|
||||
<booleanAttribute key="com.renesas.hardwaredebug.e1.allow.change.startup_bank" value="false"/>
|
||||
<booleanAttribute key="com.renesas.hardwaredebug.e1.allow.clock.source.internal" value="true"/>
|
||||
<intAttribute key="com.renesas.hardwaredebug.e1.clock_source" value="0"/>
|
||||
<intAttribute key="com.renesas.hardwaredebug.e1.clock_source" value="1"/>
|
||||
<stringAttribute key="com.renesas.hardwaredebug.e1.connection.mode" value="0"/>
|
||||
<booleanAttribute key="com.renesas.hardwaredebug.e1.e1_pwr" value="true"/>
|
||||
<booleanAttribute key="com.renesas.hardwaredebug.e1.enable.hot.plug" value="false"/>
|
||||
@@ -51,7 +51,7 @@
|
||||
<intAttribute key="com.renesas.hardwaredebug.e1.hook_work_ram_Addr" value="261584"/>
|
||||
<intAttribute key="com.renesas.hardwaredebug.e1.hook_work_ram_Size" value="560"/>
|
||||
<stringAttribute key="com.renesas.hardwaredebug.e1.id_code" value="FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"/>
|
||||
<stringAttribute key="com.renesas.hardwaredebug.e1.inputclock" value="12.0000"/>
|
||||
<stringAttribute key="com.renesas.hardwaredebug.e1.inputclock" value="27.0"/>
|
||||
<stringAttribute key="com.renesas.hardwaredebug.e1.jtag.clock.freq" value="16.5"/>
|
||||
<stringAttribute key="com.renesas.hardwaredebug.e1.jtag.or.fine" value="1"/>
|
||||
<booleanAttribute key="com.renesas.hardwaredebug.e1.le" value="true"/>
|
||||
@@ -131,6 +131,6 @@
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="4"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><memoryBlockExpressionList context="reserved-for-future-use"/>"/>
|
||||
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><memoryBlockExpressionList context="reserved-for-future-use"><gdbmemoryBlockExpression address="6520" core_thread_id="1_i1" label="0x1978"><memoryRendering id="org.eclipse.debug.ui.rendering.raw_memory"><renderingInstance containerId="org.eclipse.debug.ui.MemoryView.RenderingViewPane.1" viewId="org.eclipse.debug.ui.MemoryView" viewSecondaryId=""/></memoryRendering></gdbmemoryBlockExpression><gdbmemoryBlockExpression address="6668" core_thread_id="1_i1" label="0x1a0c"><memoryRendering id="org.eclipse.debug.ui.rendering.raw_memory"><renderingInstance containerId="org.eclipse.debug.ui.MemoryView.RenderingViewPane.1" viewId="org.eclipse.debug.ui.MemoryView" viewSecondaryId=""/></memoryRendering></gdbmemoryBlockExpression><gdbmemoryBlockExpression address="6504" core_thread_id="1_i1" label="0x1968"><memoryRendering id="org.eclipse.debug.ui.rendering.raw_memory"><renderingInstance containerId="org.eclipse.debug.ui.MemoryView.RenderingViewPane.1" viewId="org.eclipse.debug.ui.MemoryView" viewSecondaryId=""/></memoryRendering></gdbmemoryBlockExpression></memoryBlockExpressionList>"/>
|
||||
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
|
||||
</launchConfiguration>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
</storageModule>
|
||||
<storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
|
||||
<option id="toolchain.id" value="Renesas_RXC"/>
|
||||
<option id="toolchain.version" value="v3.03.00"/>
|
||||
<option id="toolchain.version" value="v3.04.00"/>
|
||||
<option id="toolchain.enable" value="true"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
@@ -24,21 +24,25 @@
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE" id="com.renesas.cdt.managedbuild.renesas.ccrx.base.targetPlatform.174341512" osList="win32" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.targetPlatform"/>
|
||||
<builder buildPath="${workspace_loc:/wolfssl}/Debug" id="com.renesas.cdt.managedbuild.renesas.ccrx.base.builder.1547537924" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CCRX Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.builder"/>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.dsp.1555184586" name="DSP Assembler" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.dsp">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo.317830941" name="デバッグ情報を出力する (-no_debug_info)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo.317830941" name="Output debug information (-no_debug_info)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.1916710340" name="Endian of output data value (-littleEndianData)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian" value="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.endian.big" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.common.566285610" name="Common" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.common">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.789156168" name="命令セット・アーキテクチャ (-isa)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.rxv2" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.789156168" name="Instruction set architecture (-isa)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.rxv2" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasFpu.1416683217" name="Has FPU" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasFpu" useByScannerDiscovery="false" value="TRUE" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceName.738625467" name="Device Name" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceName" useByScannerDiscovery="false" value="R5F571MLCxFC" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceCommand.806008705" name="Device Command" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceCommand" useByScannerDiscovery="false" value="R5F571ML" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceName.738625467" name="Device Name" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceName" useByScannerDiscovery="false" value="R5F565NEHxFP" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceCommand.806008705" name="Device Command" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceCommand" useByScannerDiscovery="false" value="R5F565NE" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.checkRtos.313687436" name="Check RTOS" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.checkRtos" useByScannerDiscovery="false" value="unusedRtos" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasDsp.963524125" name="Has DSP" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasDsp" useByScannerDiscovery="false" value="false" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily.664031971" name="Device Family" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily" useByScannerDiscovery="false" value="RX71M" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory.1128940076" name="Device history" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory" useByScannerDiscovery="false" value="non_init;R5F571MLCxFC" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily.664031971" name="Device Family" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily" useByScannerDiscovery="false" value="RX65N" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory.1128940076" name="Device history" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory" useByScannerDiscovery="false" value="R5F571MLCxFC;R5F565NEHxFP" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.rxArchitecture.2140854078" name="RX Architecture" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.rxArchitecture" useByScannerDiscovery="false" value="rxv2" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.2129136722" name="Use floating point arithmetic instructions (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.yes" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isaHistory.855338420" name="ISA history" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isaHistory" useByScannerDiscovery="false" value="non_init;com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.rxv2" valueType="string"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.compiler.958103973" name="Compiler" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.compiler">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.1276851320" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include.1381248206" name="インクルード・ファイルを検索するフォルダ (-include)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include" useByScannerDiscovery="false" valueType="includePath">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.1276851320" name="Use floating point arithmetic instructions (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.yes" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include.1381248206" name="Include file directories (-include)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.include" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${ProjDirPath}/../common"/>
|
||||
<listOptionValue builtIn="false" value="${ProjDirPath}//../../../../../../"/>
|
||||
<listOptionValue builtIn="false" value="${TCINSTALL}/include"/>
|
||||
@@ -47,37 +51,72 @@
|
||||
<listOptionValue builtIn="false" value="${ProjDirPath}/../test/src/smc_gen/r_config"/>
|
||||
<listOptionValue builtIn="false" value="${ProjDirPath}/../test/src/smc_gen/r_tsip_rx"/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.define.687020263" name="プリプロセッサ・マクロの定義 (-define)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.define" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.define.687020263" name="Macro definition (-define)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.define" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="WOLFSSL_USER_SETTINGS"/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.1494793389" name="Cソース (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.c99" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize.573554071" name="最適化レベル (-optimize)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize.level0" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.1494793389" name="C source file (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.c99" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize.573554071" name="Optimization level (-optimize)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize.level0" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore.478242509" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter.1529180842" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.1017624275" name="Character code of an input program (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.inputCharCode.utf8" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.1363723732" name="Output character code (-outcode)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.outcode.utf8" valueType="enumerated"/>
|
||||
<inputType id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gcc.inputType.971510512" name="Compiler Input C" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gcc.inputType"/>
|
||||
<inputType id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gpp.inputType.948214383" name="Compiler Input CPP" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.gpp.inputType"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.assembler.1769723979" name="Assembler" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.assembler">
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore.163658846" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter.745123542" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.96349094" name="Character code of an input program (-euc/-sjis/-latin1/-utf8/-big5/-gb2312)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.option.characterCode.utf8" valueType="enumerated"/>
|
||||
<inputType id="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.inputType.328050806" name="Assembler InputType" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.assembler.inputType"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.linker.945835579" name="Linker" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.linker">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.typeOfOutputFileOption.139100472" name="出力ファイル形式 (-form)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.typeOfOutputFileOption" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.typeOfOutputFileOption.userLibrary" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom.177476365" name="ROMからRAMへマップするセクション (-rom)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.typeOfOutputFileOption.139100472" name="Output file type (-form)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.typeOfOutputFileOption" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.typeOfOutputFileOption.userLibrary" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom.177476365" name="ROM to RAM mapped section (-rom)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.rom" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="D=R"/>
|
||||
<listOptionValue builtIn="false" value="D_1=R_1"/>
|
||||
<listOptionValue builtIn="false" value="D_2=R_2"/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection.1739258398" name="セクション (-start)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection" useByScannerDiscovery="false" value="SU,SI,B_1,R_1,B_2,R_2,B,R/04,PResetPRG,C_1,C_2,C,C$*,D*,W*,L,PIntPRG,P/0FFC00000,EXCEPTVECT/0FFFFFF80,RESETVECT/0FFFFFFFC" valueType="string"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList.1344120748" name="(リンク順序のリスト) (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList" useByScannerDiscovery="false" valueType="stringList">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection.1739258398" name="Sections (-start)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.linkerSection" useByScannerDiscovery="false" value="SU,SI,B_1,R_1,B_2,R_2,B,R/04,PResetPRG,C_1,C_2,C,C$*,D*,W*,L,PIntPRG,P/0FFE00000,EXCEPTVECT/0FFFFFF80,RESETVECT/0FFFFFFFC" valueType="string"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList.1344120748" name="(Linkage order list) (-input/-library/-binary)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.noneLinkageOrderList" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="".\src\sample3.obj""/>
|
||||
<listOptionValue builtIn="false" value="".\src\sample1.obj""/>
|
||||
<listOptionValue builtIn="false" value="".\src\sample2.obj""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore.685139217" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter.1997070460" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection.1124913743" name="Checks the section larger than the specified range of addresses (-cpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.checkSection" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.994805952" name="Memory address type assignment method (-cpu(Address space of Single-Chip Mode))" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.linker.option.memoryType.autoSpecify" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.librarian.1901868731" name="Library Generator" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.librarian">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.1987941672" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.yes" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.mode.820377223" name="標準ライブラリを生成する条件" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.mode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.mode.donotAddLibrary" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.1987941672" name="Use floating point arithmetic instructions (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.fpu.yes" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.mode.820377223" name="Generation mode of the standard library" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.mode" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.mode.donotAddLibrary" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore.747426230" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter.2138023665" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.librarian.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.converter.620355579" name="Converter" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.converter">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile.1427223323" name="出力ファイル形式 (-form)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOFOutputFile.none" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile.1427223323" name="Output file type (-form)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOfOutputFile" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.typeOFOutputFile.none" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore.443186903" name="User-defined options (added before all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userBefore" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter.1163725064" name="User-defined options (added after all specified options)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.converter.option.userAfter" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.rtosConfig.1798199560" name="RTOS Configurator" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.rtosConfig"/>
|
||||
</toolChain>
|
||||
@@ -88,7 +127,11 @@
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
<storageModule moduleId="com.renesas.cdt.managedbuild.core.boardInfo"/>
|
||||
<storageModule moduleId="com.renesas.cdt.managedbuild.core.boardInfo">
|
||||
<option id="board.id" value="gr-rose"/>
|
||||
<option id="board.name" value="gr-rose"/>
|
||||
<option id="board.device" value="R5F565NEHxFP"/>
|
||||
</storageModule>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
|
||||
@@ -87,12 +87,13 @@
|
||||
</Category>
|
||||
</Category>
|
||||
</Files>
|
||||
<Device Category="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.cpu.rx600" Series="RX">R5F571MLCxFC</Device>
|
||||
<BuildOptions Name="CC-RX" Version="v3.03.00">
|
||||
<Device Category="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.cpu.rx600" Series="RX">R5F565NEHxFP</Device>
|
||||
<BuildOptions Name="CC-RX" Version="v3.04.00">
|
||||
<BuildMode Active="True" Name="Debug">
|
||||
<GeneralOptions/>
|
||||
<CompileOptions>
|
||||
<Option>-isa=rxv2</Option>
|
||||
<Option>-fpu</Option>
|
||||
<Option>-include="${ProjDirPath}\..\common"</Option>
|
||||
<Option>-include="${ProjDirPath}\\..\..\..\..\..\..\"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\test\src\smc_gen\"</Option>
|
||||
@@ -100,8 +101,10 @@
|
||||
<Option>-include="${ProjDirPath}\..\test\src\smc_gen\r_config"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\test\src\smc_gen\r_tsip_rx"</Option>
|
||||
<Option>-define=WOLFSSL_USER_SETTINGS</Option>
|
||||
<Option>-utf8</Option>
|
||||
<Option>-nomessage</Option>
|
||||
<Option>-debug</Option>
|
||||
<Option>-outcode=utf8</Option>
|
||||
<Option>-optimize=0</Option>
|
||||
<Option>-nologo</Option>
|
||||
<Option>-lang=c99</Option>
|
||||
@@ -111,6 +114,8 @@
|
||||
</CompileOptions>
|
||||
<AssembleOptions>
|
||||
<Option>-isa=rxv2</Option>
|
||||
<Option>-fpu</Option>
|
||||
<Option>-utf8</Option>
|
||||
<Option>-debug</Option>
|
||||
<Option>-nologo</Option>
|
||||
<Option>-output=${CONFIGDIR}</Option>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -14,7 +14,7 @@
|
||||
</storageModule>
|
||||
<storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
|
||||
<option id="toolchain.id" value="Renesas_RXC"/>
|
||||
<option id="toolchain.version" value="v3.03.00"/>
|
||||
<option id="toolchain.version" value="v3.04.00"/>
|
||||
<option id="toolchain.enable" value="true"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
@@ -35,7 +35,7 @@
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.checkRtos.313687436" name="Check RTOS" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.checkRtos" useByScannerDiscovery="false" value="unusedRtos" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasDsp.963524125" name="Has DSP" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasDsp" useByScannerDiscovery="false" value="false" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily.664031971" name="Device Family" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily" useByScannerDiscovery="false" value="RX65N" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory.1128940076" name="Device history" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory" useByScannerDiscovery="false" value="R5F572NNHxFB;R5F565NEHxFC;R5F565NEDxFC" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory.1128940076" name="Device history" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory" useByScannerDiscovery="false" value="R5F565NEHxFC;R5F565NEDxFC" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.rxArchitecture.1334393839" name="RX Architecture" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.rxArchitecture" value="rxv2" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.1627839884" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.yes" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isaHistory.1548751985" name="ISA history" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isaHistory" value="non_init;com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.rxv2" valueType="string"/>
|
||||
@@ -61,7 +61,7 @@
|
||||
<listOptionValue builtIn="false" value="WOLFSSL_USER_SETTINGS"/>
|
||||
</option>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.1494793389" name="Cソース (-lang)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.langFileC.c99" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize.573554071" name="最適化レベル (-optimize)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize.level0" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize.573554071" name="最適化レベル (-optimize)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.optimize.level2" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore.1331174374" name="追加するオプション(すべての指定オプションの前に追加)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.userBefore" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
</Category>
|
||||
</Files>
|
||||
<Device Category="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.cpu.rx600" Series="RX">R5F565NEDxFC</Device>
|
||||
<BuildOptions Name="CC-RX" Version="v3.03.00">
|
||||
<BuildOptions Name="CC-RX" Version="v3.04.00">
|
||||
<BuildMode Active="True" Name="Debug">
|
||||
<GeneralOptions/>
|
||||
<CompileOptions>
|
||||
@@ -111,7 +111,6 @@
|
||||
<Option>-nomessage</Option>
|
||||
<Option>-debug</Option>
|
||||
<Option>-outcode=utf8</Option>
|
||||
<Option>-optimize=0</Option>
|
||||
<Option>-nologo</Option>
|
||||
<Option>-lang=c99</Option>
|
||||
<Option>-lang=cpp</Option>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* key_data.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -71,10 +71,65 @@ const st_key_block_data_t g_key_block_data =
|
||||
},
|
||||
/* uint8_t encrypted_user_update_key[R_TSIP_AES256_KEY_BYTE_SIZE + 16]; */
|
||||
{
|
||||
0x79, 0xB6, 0x8C, 0x48, 0x0A, 0xF2, 0x09, 0xF5, 0xD9, 0x66, 0xBE, 0x9F,
|
||||
0xD1, 0x7A, 0x93, 0x52, 0x26, 0x76, 0x6B, 0xB8, 0xF6, 0xB3, 0x88, 0xA6,
|
||||
0x4F, 0x6F, 0xB3, 0xF4, 0x8D, 0x83, 0x8F, 0xA0, 0x4A, 0x14, 0xAE, 0xF3,
|
||||
0xCB, 0x00, 0x1A, 0x0B, 0xB5, 0xE6, 0x65, 0x83, 0x2A, 0x5A, 0x16, 0x8B
|
||||
0
|
||||
},
|
||||
/* uint8_t
|
||||
* encrypted_user_rsa2048_private_key[R_TSIP_RSA2048_ND_KEY_BYTE_SIZE + 16]
|
||||
*/
|
||||
{
|
||||
0x22, 0xEC, 0xE3, 0x79, 0xD1, 0x0C, 0xB4, 0xED, 0xE0, 0xA9, 0x0F, 0xBD,
|
||||
0xC7, 0x0B, 0xB4, 0x1E, 0x82, 0x27, 0x79, 0x20, 0x6A, 0x15, 0x56, 0xD6,
|
||||
0x0F, 0xFA, 0xE4, 0x61, 0x04, 0xDA, 0x81, 0x33, 0x42, 0xBA, 0x6D, 0xB9,
|
||||
0x34, 0x81, 0xFD, 0x67, 0xDF, 0x1D, 0xCB, 0x52, 0x64, 0x9A, 0x2E, 0x30,
|
||||
0x12, 0x60, 0xCB, 0x48, 0x27, 0xB6, 0x38, 0x0B, 0x54, 0x5A, 0x70, 0xCB,
|
||||
0x6F, 0x05, 0x53, 0x46, 0x8B, 0x08, 0x86, 0x24, 0xCB, 0xA2, 0x36, 0x54,
|
||||
0xCD, 0xC9, 0x61, 0x37, 0x43, 0xCB, 0xCC, 0x7C, 0x6B, 0x20, 0x07, 0xB6,
|
||||
0x01, 0x96, 0x32, 0xF5, 0x30, 0x0E, 0x96, 0x05, 0xC4, 0xF5, 0xF0, 0xB0,
|
||||
0xD3, 0x26, 0xAF, 0x6E, 0x39, 0x01, 0x2D, 0xAC, 0x7E, 0x39, 0xCF, 0x48,
|
||||
0x74, 0x7D, 0x98, 0x00, 0xA6, 0x95, 0xDA, 0x4C, 0xAC, 0x81, 0xC7, 0x9A,
|
||||
0x93, 0x69, 0x23, 0xD4, 0x39, 0xCD, 0xB3, 0x62, 0x4A, 0x4A, 0x26, 0x95,
|
||||
0x51, 0xE1, 0x06, 0x8F, 0xB2, 0x3C, 0x8F, 0xDE, 0xF1, 0xC3, 0x69, 0xFC,
|
||||
0xF5, 0xC3, 0xCE, 0x39, 0x3F, 0x7F, 0x2D, 0xA8, 0x8B, 0xB3, 0x2D, 0xE4,
|
||||
0xB8, 0xA4, 0x19, 0x55, 0x29, 0xEC, 0x9C, 0x6A, 0xD7, 0xD7, 0x45, 0x3E,
|
||||
0x1D, 0x18, 0x52, 0xB5, 0x8A, 0xB1, 0x26, 0x43, 0x8C, 0x7A, 0x65, 0xF1,
|
||||
0x17, 0x5E, 0x75, 0x4A, 0x1A, 0x30, 0xD8, 0xEA, 0xC2, 0x19, 0x3C, 0x1E,
|
||||
0x2E, 0xFB, 0xDB, 0xC9, 0x1F, 0x73, 0xC9, 0x95, 0x53, 0x8C, 0x99, 0x5D,
|
||||
0x3B, 0x59, 0xFE, 0x8B, 0xA1, 0xD2, 0xBB, 0xBC, 0xBC, 0x4B, 0x78, 0x0A,
|
||||
0x6B, 0xD8, 0xBE, 0x85, 0x60, 0x08, 0x1E, 0x2F, 0x38, 0x77, 0xA3, 0xC4,
|
||||
0x46, 0xC1, 0x42, 0x39, 0xA6, 0x59, 0x98, 0x59, 0x21, 0x94, 0x1F, 0xDC,
|
||||
0xB3, 0xAE, 0xA3, 0xB6, 0xCC, 0x35, 0x82, 0x6F, 0x87, 0x58, 0x91, 0x70,
|
||||
0xEC, 0x3F, 0x05, 0x86, 0x3C, 0xD1, 0x83, 0xB0, 0xBA, 0xE8, 0xD7, 0xF6,
|
||||
0xE5, 0x9E, 0x50, 0xA4, 0x04, 0xF3, 0x95, 0x9C, 0x41, 0xAF, 0xEB, 0x9D,
|
||||
0xB6, 0xA2, 0xF7, 0x80, 0x5A, 0xC4, 0x67, 0xD4, 0xFD, 0x0C, 0x2A, 0x7C,
|
||||
0x24, 0x03, 0xE5, 0x7F, 0x08, 0x69, 0x18, 0x4E, 0x33, 0x22, 0x7E, 0x03,
|
||||
0x8E, 0x13, 0xFB, 0xC6, 0x9B, 0xA3, 0x44, 0x5B, 0xEC, 0xF9, 0x5C, 0x93,
|
||||
0x3E, 0x9F, 0xBD, 0x72, 0x50, 0x52, 0xF3, 0xEA, 0x34, 0x2B, 0x8E, 0xEC,
|
||||
0x17, 0x42, 0x1A, 0xDF, 0x57, 0xA2, 0x66, 0xA7, 0x0B, 0x3B, 0xE5, 0xF7,
|
||||
0x64, 0x44, 0xA2, 0xA3, 0x5F, 0xB7, 0x5B, 0xF5, 0x99, 0x8C, 0xA0, 0x64,
|
||||
0x04, 0x46, 0x7C, 0x60, 0x75, 0xE4, 0xD9, 0xD5, 0xED, 0x21, 0x1D, 0x65,
|
||||
0x5D, 0x25, 0x21, 0x90, 0x7D, 0xA4, 0x95, 0x15, 0x54, 0x91, 0xD6, 0xB8,
|
||||
0xF9, 0xB7, 0x30, 0xD9, 0x7D, 0x2C, 0x7E, 0x85, 0x6A, 0xCF, 0x31, 0x1C,
|
||||
0xDC, 0x90, 0xA3, 0x75, 0xA4, 0xE4, 0x89, 0x5F, 0x2B, 0xED, 0x93, 0x4E,
|
||||
0xA8, 0x35, 0xD3, 0x20, 0x36, 0x7A, 0x02, 0x23, 0x70, 0xB7, 0xC2, 0x39,
|
||||
0xA4, 0x69, 0xB2, 0xBF, 0xA4, 0x3A, 0x6D, 0xB7, 0xB1, 0x32, 0x32, 0x9A,
|
||||
0x95, 0xEA, 0x02, 0xD2, 0x35, 0xE7, 0x8C, 0xD8, 0x22, 0xA9, 0xC3, 0x4C,
|
||||
0x68, 0x09, 0xA1, 0x2B, 0xB0, 0xE4, 0x55, 0x72, 0x7E, 0xE6, 0x00, 0xDD,
|
||||
0xC6, 0xD1, 0x83, 0x56, 0x08, 0x35, 0xC7, 0x9A, 0x98, 0x0C, 0x79, 0xBD,
|
||||
0x49, 0xBC, 0x3F, 0x45, 0x4A, 0x38, 0x1B, 0x55, 0x2D, 0x52, 0x57, 0x00,
|
||||
0xFC, 0xDB, 0xE7, 0xA0, 0x53, 0xB4, 0x63, 0xE4, 0x37, 0xEC, 0x9F, 0xF0,
|
||||
0xA4, 0x0F, 0xEF, 0x06, 0xF0, 0xC6, 0x5F, 0x0C, 0x4A, 0xB8, 0xC1, 0x96,
|
||||
0x1D, 0x0D, 0x9A, 0x43, 0x89, 0xA4, 0xF6, 0x55, 0x4A, 0x83, 0x54, 0x3F,
|
||||
0xCC, 0x09, 0x65, 0x34, 0xC0, 0x0F, 0x42, 0xF2, 0xE6, 0xDD, 0x2D, 0x8C,
|
||||
0x93, 0x42, 0x09, 0xF6, 0xE4, 0xDF, 0xB2, 0x64, 0x2A, 0x12, 0x7A, 0x59
|
||||
},
|
||||
/* uint8_t
|
||||
* encrypted_user_ecc256_private_key[R_TSIP_ECC_PRIVATE_KEY_BYTE_SIZE + 16];
|
||||
*/
|
||||
{
|
||||
0x25, 0x7A, 0x0C, 0x8C, 0x9B, 0xF9, 0x3C, 0xF5, 0x49, 0x08, 0x86, 0x92,
|
||||
0x00, 0x7D, 0xAB, 0x21, 0x23, 0x38, 0xF8, 0xEA, 0xB0, 0x95, 0x59, 0x9B,
|
||||
0x04, 0xC8, 0xAA, 0xEA, 0x8C, 0x2D, 0x68, 0xF4, 0xD5, 0xD7, 0xA9, 0x6F,
|
||||
0x2C, 0x8C, 0x13, 0x93, 0xA3, 0x80, 0x11, 0xF9, 0x0F, 0x36, 0x14, 0xA8
|
||||
},
|
||||
|
||||
};
|
||||
@@ -170,4 +225,6 @@ const unsigned char client_cert_der_sign[] =
|
||||
};
|
||||
const int sizeof_client_cert_der_sign = sizeof(client_cert_der_sign);
|
||||
|
||||
uint32_t s_inst1[R_TSIP_SINST_WORD_SIZE] = { 0 };
|
||||
uint32_t s_inst2[R_TSIP_SINST2_WORD_SIZE]= { 0 };
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* key_data.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -38,6 +38,8 @@ typedef struct st_key_block_data
|
||||
uint8_t iv[R_TSIP_AES_CBC_IV_BYTE_SIZE];
|
||||
uint8_t encrypted_user_rsa2048_ne_key[R_TSIP_RSA2048_NE_KEY_BYTE_SIZE + 16];
|
||||
uint8_t encrypted_user_update_key[R_TSIP_AES256_KEY_BYTE_SIZE + 16];
|
||||
uint8_t encrypted_user_rsa2048_private_key[R_TSIP_RSA2048_ND_KEY_BYTE_SIZE + 16];
|
||||
uint8_t encrypted_user_ecc256_private_key[R_TSIP_ECC_PRIVATE_KEY_BYTE_SIZE + 16];
|
||||
} st_key_block_data_t;
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* user_settings.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -36,9 +36,10 @@
|
||||
* 109: TSIPv1.09
|
||||
* 113: TSIPv1.13
|
||||
* 114: TSIPv1.14
|
||||
* 115: TSIPv1.15
|
||||
*----------------------------------------------------------------------------*/
|
||||
#define WOLFSSL_RENESAS_TSIP
|
||||
#define WOLFSSL_RENESAS_TSIP_VER 114
|
||||
#define WOLFSSL_RENESAS_TSIP_VER 115
|
||||
|
||||
|
||||
/*-- TLS version definitions --------------------------------------------------
|
||||
@@ -47,7 +48,7 @@
|
||||
* TLSv1.3, uncomment line below.
|
||||
*
|
||||
*----------------------------------------------------------------------------*/
|
||||
/*#define WOLFSSL_TLS13*/
|
||||
#define WOLFSSL_TLS13
|
||||
|
||||
|
||||
/*-- Operating System related definitions --------------------------------------
|
||||
@@ -69,11 +70,12 @@
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
#define NO_DEV_RANDOM
|
||||
|
||||
#define NO_MD4
|
||||
#define WOLFSSL_DH_CONST
|
||||
#define HAVE_TLS_EXTENSIONS
|
||||
|
||||
#define HAVE_AESGCM
|
||||
#define HAVE_AESCCM
|
||||
#define HAVE_AES_CBC
|
||||
#define WOLFSSL_SHA512
|
||||
|
||||
@@ -105,7 +107,7 @@
|
||||
* - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA256
|
||||
*
|
||||
*/
|
||||
/*#define USE_ECC_CERT*/
|
||||
#define USE_ECC_CERT
|
||||
|
||||
/* In this example application, Root CA cert buffer named
|
||||
* "ca_ecc_cert_der_256" is used under the following macro definition
|
||||
@@ -148,8 +150,10 @@
|
||||
|
||||
|
||||
#define WOLFSSL_USER_CURRTIME /* for benchmark */
|
||||
#define USER_TIME
|
||||
#define TIME_OVERRIDES
|
||||
#define XTIME time
|
||||
#define WOLFSSL_GMTIME
|
||||
#define XGMTIME(c,t) gmtime(c)
|
||||
#define USE_WOLF_SUSECONDS_T
|
||||
#define USE_WOLF_TIMEVAL_T
|
||||
|
||||
@@ -219,3 +223,6 @@
|
||||
#define HAVE_HKDF
|
||||
#define WC_RSA_PSS
|
||||
#endif
|
||||
|
||||
/*-- strcasecmp */
|
||||
#define XSTRCASECMP(s1,s2) strcmp((s1),(s2))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wolfssl_demo.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -165,7 +165,7 @@ static void Tls_client_init(const char* cipherlist)
|
||||
|
||||
/* Create and initialize WOLFSSL_CTX */
|
||||
if ((client_ctx =
|
||||
wolfSSL_CTX_new(wolfTLSv1_2_client_method_ex((void *)NULL))) == NULL) {
|
||||
wolfSSL_CTX_new(wolfSSLv23_client_method_ex((void *)NULL))) == NULL) {
|
||||
printf("ERROR: failed to create WOLFSSL_CTX\n");
|
||||
return;
|
||||
}
|
||||
@@ -174,24 +174,71 @@ static void Tls_client_init(const char* cipherlist)
|
||||
tsip_set_callbacks(client_ctx);
|
||||
#endif
|
||||
|
||||
/* load Root CA certificate */
|
||||
#if defined(NO_FILESYSTEM)
|
||||
|
||||
if (wolfSSL_CTX_load_verify_buffer(client_ctx, cert,
|
||||
SIZEOF_CERT, SSL_FILETYPE_ASN1) != SSL_SUCCESS) {
|
||||
printf("ERROR: can't load certificate data\n");
|
||||
return;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
if (wolfSSL_CTX_load_verify_locations(client_ctx, cert, 0) != SSL_SUCCESS) {
|
||||
printf("ERROR: can't load \"%s\"\n", cert);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* load client certificate */
|
||||
#ifdef USE_ECC_CERT
|
||||
if (wolfSSL_CTX_use_certificate_chain_buffer_format(client_ctx,
|
||||
cliecc_cert_der_256,
|
||||
sizeof_cliecc_cert_der_256,
|
||||
WOLFSSL_FILETYPE_ASN1) != SSL_SUCCESS) {
|
||||
printf("ERROR: can't load client-certificate\n");
|
||||
return;
|
||||
}
|
||||
#else
|
||||
if (wolfSSL_CTX_use_certificate_chain_buffer_format(client_ctx,
|
||||
client_cert_der_2048,
|
||||
sizeof_client_cert_der_2048,
|
||||
WOLFSSL_FILETYPE_ASN1) != SSL_SUCCESS) {
|
||||
printf("ERROR: can't load client-certificate\n");
|
||||
return;
|
||||
}
|
||||
#endif /* USE_ECC_CERT */
|
||||
|
||||
/* load client private key */
|
||||
|
||||
#ifdef USE_ECC_CERT
|
||||
#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_RENESAS_TSIP_TLS) &&
|
||||
(WOLFSSL_RENESAS_TSIP_VER >= 115 )
|
||||
if (tsip_set_clientPrivateKeyEnc(
|
||||
g_key_block_data.encrypted_user_ecc256_private_key,
|
||||
TSIP_ECCP256) != 0) {
|
||||
printf("ERROR: can't load client-private key\n");
|
||||
return;
|
||||
}
|
||||
#else
|
||||
if (wolfSSL_CTX_use_PrivateKey_buffer(client_ctx,
|
||||
ecc_clikey_der_256,
|
||||
sizeof_ecc_clikey_der_256,
|
||||
SSL_FILETYPE_ASN1) != WOLFSSL_SUCCESS) {
|
||||
printf("ERROR: can't load private-key data.\n");
|
||||
return;
|
||||
}
|
||||
#endif /* WOLFSSL_TLS13 */
|
||||
#else
|
||||
if (wolfSSL_CTX_use_PrivateKey_buffer(client_ctx,
|
||||
client_key_der_2048,
|
||||
sizeof_client_key_der_2048,
|
||||
SSL_FILETYPE_ASN1)
|
||||
!= WOLFSSL_SUCCESS) {
|
||||
printf("ERROR: can't load private-key data.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
#endif /* USE_ECC_CERT */
|
||||
|
||||
/* use specific cipher */
|
||||
if (cipherlist != NULL &&
|
||||
wolfSSL_CTX_set_cipher_list(client_ctx, cipherlist) !=
|
||||
@@ -199,6 +246,18 @@ static void Tls_client_init(const char* cipherlist)
|
||||
wolfSSL_CTX_free(client_ctx); client_ctx = NULL;
|
||||
printf("client can't set cipher list");
|
||||
}
|
||||
|
||||
#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_RENESAS_TSIP_TLS) &&
|
||||
(WOLFSSL_RENESAS_TSIP_VER >= 115)
|
||||
|
||||
if (wolfSSL_CTX_UseSupportedCurve(client_ctx, WOLFSSL_ECC_SECP256R1)
|
||||
!= WOLFSSL_SUCCESS) {
|
||||
wolfSSL_CTX_free(client_ctx); client_ctx = NULL;
|
||||
printf("client can't set use supported curves\n");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
static void Tls_client()
|
||||
@@ -314,13 +373,26 @@ static void Tls_client_demo(void)
|
||||
|
||||
#ifdef USE_ECC_CERT
|
||||
const char* cipherlist[] = {
|
||||
#if defined(WOLFSSL_TLS13)
|
||||
"TLS13-AES128-GCM-SHA256",
|
||||
"TLS13-AES128-CCM-SHA256",
|
||||
#endif
|
||||
"ECDHE-ECDSA-AES128-GCM-SHA256",
|
||||
"ECDHE-ECDSA-AES128-SHA256"
|
||||
};
|
||||
const int cipherlist_sz = 2;
|
||||
int cipherlist_sz;
|
||||
#if defined(WOLFSSL_TLS13)
|
||||
cipherlist_sz = 2;
|
||||
#else
|
||||
cipherlist_sz = 2;
|
||||
#endif
|
||||
|
||||
#else
|
||||
const char* cipherlist[] = {
|
||||
#if defined(WOLFSSL_TLS13)
|
||||
"TLS13-AES128-GCM-SHA256",
|
||||
"TLS13-AES128-CCM-SHA256",
|
||||
#endif
|
||||
"ECDHE-RSA-AES128-GCM-SHA256",
|
||||
"ECDHE-RSA-AES128-SHA256",
|
||||
"AES128-SHA",
|
||||
@@ -328,7 +400,12 @@ static void Tls_client_demo(void)
|
||||
"AES256-SHA",
|
||||
"AES256-SHA256"
|
||||
};
|
||||
const int cipherlist_sz = 6;
|
||||
int cipherlist_sz;
|
||||
#if defined(WOLFSSL_TLS13)
|
||||
cipherlist_sz = 2;
|
||||
#else
|
||||
cipherlist_sz = 6;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -371,7 +448,6 @@ static void Tls_client_demo(void)
|
||||
(byte*)&g_key_block_data.encrypted_user_rsa2048_ne_key,
|
||||
encrypted_user_key_type);
|
||||
|
||||
guser_PKCbInfo.user_key_id = 0;
|
||||
|
||||
#endif /* WOLFSSL_RENESAS_TSIP_TLS && (WOLFSSL_RENESAS_TSIP_VER >=109) */
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wolfssl_demo.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -14,7 +14,7 @@
|
||||
</storageModule>
|
||||
<storageModule moduleId="com.renesas.cdt.managedbuild.core.toolchainInfo">
|
||||
<option id="toolchain.id" value="Renesas_RXC"/>
|
||||
<option id="toolchain.version" value="v3.03.00"/>
|
||||
<option id="toolchain.version" value="v3.04.00"/>
|
||||
<option id="toolchain.enable" value="true"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
@@ -27,7 +27,7 @@
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo.317830941" name="デバッグ情報を出力する (-no_debug_info)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.dsp.option.noDebugInfo" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.common.566285610" name="Common" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.common">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.789156168" name="命令セット・アーキテクチャ (-isa)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.rxv2" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.789156168" name="命令セット・アーキテクチャ (-isa)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.isa.rxv3" valueType="enumerated"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasFpu.1416683217" name="Has FPU" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasFpu" useByScannerDiscovery="false" value="TRUE" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceName.738625467" name="Device Name" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceName" useByScannerDiscovery="false" value="R5F572NNHxFB" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceCommand.806008705" name="Device Command" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceCommand" useByScannerDiscovery="false" value="R5F572NN" valueType="string"/>
|
||||
@@ -35,6 +35,8 @@
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasDsp.963524125" name="Has DSP" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.hasDsp" useByScannerDiscovery="false" value="false" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily.664031971" name="Device Family" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceFamily" useByScannerDiscovery="false" value="RX72N" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory.1128940076" name="Device history" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.deviceHistory" useByScannerDiscovery="false" value="non_init;R5F572NNHxFB" valueType="string"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.doublePrecisionFPU.1794174354" name="倍精度浮動小数点処理命令を使用する (-dpfpu/-nodpfpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.doublePrecisionFPU" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.1365779106" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.floatIns.yes" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="com.renesas.cdt.managedbuild.renesas.ccrx.base.compiler.958103973" name="Compiler" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.base.compiler">
|
||||
<option id="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.1276851320" name="浮動小数点演算命令を使用する (-fpu/-nofpu)" superClass="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu" useByScannerDiscovery="false" value="com.renesas.cdt.managedbuild.renesas.ccrx.compiler.option.fpu.yes" valueType="enumerated"/>
|
||||
|
||||
@@ -88,11 +88,13 @@
|
||||
</Category>
|
||||
</Files>
|
||||
<Device Category="com.renesas.cdt.managedbuild.renesas.ccrx.common.option.cpu.rx600" Series="RX">R5F572NNHxFB</Device>
|
||||
<BuildOptions Name="CC-RX" Version="v3.03.00">
|
||||
<BuildOptions Name="CC-RX" Version="v3.04.00">
|
||||
<BuildMode Active="True" Name="Debug">
|
||||
<GeneralOptions/>
|
||||
<CompileOptions>
|
||||
<Option>-isa=rxv2</Option>
|
||||
<Option>-isa=rxv3</Option>
|
||||
<Option>-fpu</Option>
|
||||
<Option>-dpfpu</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\demos"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\freertos_kernel\include"</Option>
|
||||
@@ -106,6 +108,7 @@
|
||||
<Option>-include="${ProjDirPath}\..\..\..\..\..\..\..\vendors\renesas\boards\rx72n-envision-kit\aws_demos\src\smc_gen\r_tsip_rx"</Option>
|
||||
<Option>-include="${ProjDirPath}\..\wolfssl_demo"</Option>
|
||||
<Option>-define=WOLFSSL_USER_SETTINGS</Option>
|
||||
<Option>-asmopt=-bank</Option>
|
||||
<Option>-nomessage</Option>
|
||||
<Option>-debug</Option>
|
||||
<Option>-tfu=intrinsic</Option>
|
||||
@@ -116,7 +119,10 @@
|
||||
<Option>-obj_path=${CONFIGDIR}</Option>
|
||||
</CompileOptions>
|
||||
<AssembleOptions>
|
||||
<Option>-isa=rxv2</Option>
|
||||
<Option>-isa=rxv3</Option>
|
||||
<Option>-fpu</Option>
|
||||
<Option>-dpfpu</Option>
|
||||
<Option>-bank</Option>
|
||||
<Option>-debug</Option>
|
||||
<Option>-nologo</Option>
|
||||
<Option>-output=${CONFIGDIR}</Option>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* key_data.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -70,10 +70,65 @@ const st_key_block_data_t g_key_block_data =
|
||||
},
|
||||
/* uint8_t encrypted_user_update_key[R_TSIP_AES256_KEY_BYTE_SIZE + 16]; */
|
||||
{
|
||||
0xD6, 0xDB, 0x33, 0x0B, 0xC4, 0x72, 0x5A, 0xD3, 0x23, 0xDE, 0x1C, 0xAF,
|
||||
0xA8, 0x33, 0xA6, 0x85, 0xA0, 0xAB, 0xBF, 0x51, 0x8B, 0xF4, 0x68, 0x45,
|
||||
0xBD, 0x6D, 0xA5, 0x7A, 0x88, 0x82, 0x9C, 0x50, 0x43, 0xD7, 0x53, 0xC0,
|
||||
0x9E, 0xA8, 0x4B, 0x7E, 0x8A, 0x8B, 0xF3, 0x1B, 0xA5, 0x50, 0x55, 0x5D
|
||||
0
|
||||
},
|
||||
/* uint8_t
|
||||
* encrypted_user_rsa2048_private_key[R_TSIP_RSA2048_ND_KEY_BYTE_SIZE + 16]
|
||||
*/
|
||||
{
|
||||
0xAF, 0x8C, 0x78, 0xE3, 0x6C, 0x9E, 0xC6, 0x76, 0xE5, 0x86, 0x84, 0xBE,
|
||||
0xF5, 0x6C, 0xD7, 0x2B, 0x46, 0x24, 0x35, 0x99, 0xA5, 0x64, 0xDD, 0xFA,
|
||||
0x35, 0x22, 0x5A, 0xB8, 0x5F, 0xD8, 0x1E, 0xCF, 0xCC, 0x73, 0x10, 0xD6,
|
||||
0x13, 0x69, 0x8F, 0x36, 0xA9, 0x8E, 0x09, 0xDF, 0x83, 0x20, 0x85, 0xBE,
|
||||
0x81, 0x69, 0x51, 0x75, 0xCB, 0xA5, 0x90, 0x8C, 0xC1, 0x75, 0xBE, 0x0F,
|
||||
0x8C, 0xB6, 0xFE, 0x73, 0x03, 0x37, 0x03, 0x41, 0xC0, 0x98, 0xC2, 0xEE,
|
||||
0x2D, 0x1B, 0xDA, 0x10, 0x8B, 0xF6, 0xB6, 0x67, 0xE9, 0x29, 0xCD, 0xEC,
|
||||
0x4C, 0x4D, 0x84, 0x28, 0x61, 0x3A, 0xF5, 0x6D, 0xEE, 0x78, 0x45, 0xF3,
|
||||
0x17, 0xC9, 0x77, 0xAB, 0x56, 0x2C, 0x68, 0xCB, 0x14, 0x9F, 0x5A, 0xE7,
|
||||
0x11, 0xC7, 0x13, 0x4B, 0xDC, 0x31, 0x60, 0x77, 0xDA, 0x56, 0x0C, 0x15,
|
||||
0xB2, 0xA9, 0x73, 0x4C, 0xD3, 0x46, 0x29, 0x18, 0x1C, 0x8C, 0xFD, 0xCF,
|
||||
0xAC, 0x4B, 0x55, 0x30, 0x96, 0xDC, 0xE9, 0xC0, 0x6A, 0x74, 0x68, 0x1D,
|
||||
0x6B, 0x25, 0xB0, 0x8F, 0x0C, 0xD7, 0xDD, 0xFC, 0xA8, 0x15, 0x87, 0x3E,
|
||||
0xA3, 0x91, 0x46, 0x25, 0x6C, 0x6F, 0xC4, 0xB2, 0xE1, 0xB8, 0x5F, 0xF3,
|
||||
0x6A, 0x0D, 0x9C, 0x29, 0x08, 0x6F, 0x5E, 0xFF, 0xA0, 0x81, 0x34, 0xA5,
|
||||
0x2B, 0x2B, 0x47, 0xE0, 0x6D, 0x56, 0xD2, 0x52, 0xC7, 0x19, 0x63, 0x72,
|
||||
0x84, 0x96, 0x64, 0xA5, 0xF2, 0x92, 0x3C, 0x38, 0x37, 0x9F, 0x6A, 0x2D,
|
||||
0x58, 0x33, 0x8C, 0x5C, 0x27, 0x05, 0xCB, 0x4F, 0x62, 0x2F, 0x40, 0xE9,
|
||||
0x55, 0x2C, 0x75, 0x4B, 0x02, 0xB3, 0x61, 0xAD, 0x34, 0x14, 0x49, 0x26,
|
||||
0x94, 0x45, 0x9B, 0xB8, 0xDB, 0x1F, 0xCE, 0xE9, 0xB1, 0xBF, 0x47, 0xF3,
|
||||
0xD4, 0xAD, 0xEB, 0xBC, 0x4F, 0x61, 0xAD, 0x66, 0xAF, 0x10, 0x94, 0x5D,
|
||||
0x25, 0x5B, 0x52, 0xF3, 0x44, 0xBA, 0x28, 0xF8, 0xF2, 0x01, 0x41, 0x61,
|
||||
0xF3, 0xE5, 0x91, 0x44, 0xF9, 0xA3, 0x56, 0xD8, 0xE9, 0x43, 0x0F, 0x78,
|
||||
0x7E, 0x1C, 0x01, 0xA6, 0xD7, 0x47, 0x87, 0x7C, 0xC5, 0xAF, 0x2A, 0xD3,
|
||||
0x71, 0x3A, 0x3E, 0x96, 0xF5, 0x8E, 0xA8, 0x1A, 0x89, 0x17, 0xCD, 0x52,
|
||||
0x7E, 0x98, 0x70, 0xB3, 0x57, 0x22, 0x59, 0x1C, 0xB7, 0x61, 0xD3, 0x32,
|
||||
0xE5, 0x2E, 0x6B, 0x6F, 0x2B, 0xD2, 0xAB, 0x27, 0x62, 0x65, 0xBE, 0x0B,
|
||||
0x8B, 0xFC, 0x9D, 0xB7, 0x3B, 0x4F, 0xA7, 0x35, 0xA6, 0xB3, 0x10, 0x98,
|
||||
0x6D, 0x47, 0x12, 0x16, 0x89, 0x33, 0x9A, 0x87, 0x85, 0x50, 0x21, 0x2B,
|
||||
0x03, 0xD0, 0x0C, 0x25, 0x52, 0xC1, 0xA4, 0xD9, 0x50, 0x57, 0x0A, 0x88,
|
||||
0x67, 0xE9, 0x55, 0x78, 0xFF, 0x23, 0xC0, 0xD1, 0xB6, 0xF4, 0xBD, 0x64,
|
||||
0x38, 0x9A, 0x59, 0xD8, 0x0C, 0xCA, 0x3C, 0x44, 0xBB, 0x31, 0x40, 0xF3,
|
||||
0x3F, 0x84, 0x74, 0x1A, 0x1B, 0xFB, 0x81, 0x22, 0x20, 0x0E, 0x68, 0x48,
|
||||
0x7F, 0xBF, 0xBB, 0xE2, 0xF7, 0xEA, 0x1C, 0xDD, 0x63, 0xAA, 0x3E, 0xFE,
|
||||
0x7A, 0xBD, 0x6C, 0x2A, 0x2C, 0x6C, 0x8E, 0x3C, 0xB6, 0x42, 0x2F, 0x42,
|
||||
0xF2, 0x17, 0x07, 0x2F, 0x4F, 0xAA, 0x4B, 0xA0, 0xE7, 0x98, 0xAE, 0x95,
|
||||
0x21, 0x2A, 0xF8, 0x1C, 0x33, 0x81, 0xC2, 0x64, 0xEC, 0xF3, 0xD7, 0x75,
|
||||
0x81, 0x61, 0x8C, 0xDF, 0x7F, 0x76, 0x6B, 0x44, 0x22, 0x36, 0xD3, 0x7F,
|
||||
0x17, 0x40, 0x84, 0xF8, 0xA8, 0x4B, 0xD5, 0xD4, 0x4E, 0xA1, 0x86, 0xDB,
|
||||
0x9B, 0xCD, 0xB6, 0x6C, 0xDF, 0x35, 0x0C, 0x0D, 0x7E, 0x0F, 0x01, 0x9C,
|
||||
0xF7, 0x6E, 0x89, 0xE6, 0x2F, 0x0E, 0xC5, 0xF3, 0xEA, 0x69, 0x8C, 0xA5,
|
||||
0xD5, 0x48, 0xEE, 0x5B, 0x77, 0x04, 0xFE, 0xC7, 0x56, 0x87, 0x27, 0xD4,
|
||||
0xF9, 0xCC, 0xB4, 0xB4, 0xB7, 0x1A, 0x85, 0x38, 0x0B, 0x93, 0xD2, 0x1D,
|
||||
0xD3, 0xDE, 0x7E, 0x45, 0xAF, 0x82, 0x46, 0x65, 0xFE, 0x59, 0x55, 0x83
|
||||
},
|
||||
/* uint8_t
|
||||
* encrypted_user_ecc256_private_key[R_TSIP_ECC_PRIVATE_KEY_BYTE_SIZE + 16];
|
||||
*/
|
||||
{
|
||||
0xE6, 0x6C, 0xB8, 0x7C, 0xDB, 0x85, 0x50, 0x51, 0x4A, 0x75, 0x38, 0xA4,
|
||||
0x74, 0x7A, 0x8C, 0x7C, 0x07, 0x71, 0x0E, 0x52, 0xC3, 0x19, 0xD1, 0xE6,
|
||||
0xF8, 0x36, 0xD2, 0xD3, 0x53, 0xF8, 0xA7, 0xCE, 0xBC, 0xBE, 0xAE, 0x62,
|
||||
0x7F, 0x00, 0x54, 0xB1, 0x01, 0x11, 0xCA, 0xE3, 0x77, 0x3E, 0x2E, 0x21
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* key_data.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -38,6 +38,8 @@ typedef struct st_key_block_data
|
||||
uint8_t iv[R_TSIP_AES_CBC_IV_BYTE_SIZE];
|
||||
uint8_t encrypted_user_rsa2048_ne_key[R_TSIP_RSA2048_NE_KEY_BYTE_SIZE + 16];
|
||||
uint8_t encrypted_user_update_key[R_TSIP_AES256_KEY_BYTE_SIZE + 16];
|
||||
uint8_t encrypted_user_rsa2048_private_key[R_TSIP_RSA2048_ND_KEY_BYTE_SIZE + 16];
|
||||
uint8_t encrypted_user_ecc256_private_key[R_TSIP_ECC_PRIVATE_KEY_BYTE_SIZE + 16];
|
||||
} st_key_block_data_t;
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* user_settings.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -36,9 +36,10 @@
|
||||
* 109: TSIPv1.09
|
||||
* 113: TSIPv1.13
|
||||
* 114: TSIPv1.14
|
||||
* 115: TSIPv1.15
|
||||
*----------------------------------------------------------------------------*/
|
||||
#define WOLFSSL_RENESAS_TSIP
|
||||
#define WOLFSSL_RENESAS_TSIP_VER 114
|
||||
#define WOLFSSL_RENESAS_TSIP_VER 115
|
||||
|
||||
|
||||
/*-- TLS version definitions --------------------------------------------------
|
||||
@@ -47,7 +48,7 @@
|
||||
* TLSv1.3, uncomment line below.
|
||||
*
|
||||
*----------------------------------------------------------------------------*/
|
||||
/*#define WOLFSSL_TLS13*/
|
||||
#define WOLFSSL_TLS13
|
||||
|
||||
|
||||
/*-- Operating System related definitions --------------------------------------
|
||||
@@ -60,8 +61,10 @@
|
||||
#define FREERTOS
|
||||
#define FREERTOS_TCP
|
||||
|
||||
|
||||
|
||||
#if !defined(FREERTOS_TCP)
|
||||
#define WOLFSSL_NO_SOCK
|
||||
#define WOLFSSL_USER_IO
|
||||
#endif
|
||||
|
||||
/*-- Cipher related definitions -----------------------------------------------
|
||||
*
|
||||
@@ -69,11 +72,12 @@
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
#define NO_DEV_RANDOM
|
||||
|
||||
#define NO_MD4
|
||||
#define WOLFSSL_DH_CONST
|
||||
#define HAVE_TLS_EXTENSIONS
|
||||
|
||||
#define HAVE_AESGCM
|
||||
#define HAVE_AESCCM
|
||||
#define HAVE_AES_CBC
|
||||
#define WOLFSSL_SHA512
|
||||
|
||||
@@ -105,7 +109,7 @@
|
||||
* - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA256
|
||||
*
|
||||
*/
|
||||
/*#define USE_ECC_CERT*/
|
||||
#define USE_ECC_CERT
|
||||
|
||||
/* In this example application, Root CA cert buffer named
|
||||
* "ca_ecc_cert_der_256" is used under the following macro definition
|
||||
@@ -148,8 +152,10 @@
|
||||
|
||||
|
||||
#define WOLFSSL_USER_CURRTIME /* for benchmark */
|
||||
#define USER_TIME
|
||||
#define TIME_OVERRIDES
|
||||
#define XTIME time
|
||||
#define WOLFSSL_GMTIME
|
||||
#define XGMTIME(c,t) gmtime(c)
|
||||
#define USE_WOLF_SUSECONDS_T
|
||||
#define USE_WOLF_TIMEVAL_T
|
||||
|
||||
@@ -219,3 +225,6 @@
|
||||
#define HAVE_HKDF
|
||||
#define WC_RSA_PSS
|
||||
#endif
|
||||
|
||||
/*-- strcasecmp */
|
||||
#define XSTRCASECMP(s1,s2) strcmp((s1),(s2))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wolfssl_demo.c
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
@@ -24,11 +24,7 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "FreeRTOS.h"
|
||||
#include "FreeRTOS_IP.h"
|
||||
#include "FreeRTOS_Sockets.h"
|
||||
#include "platform/iot_network.h"
|
||||
#include "platform.h"
|
||||
|
||||
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
@@ -40,6 +36,14 @@
|
||||
#include <wolfcrypt/test/test.h>
|
||||
#include <wolfcrypt/benchmark/benchmark.h>
|
||||
|
||||
#include "FreeRTOS.h"
|
||||
#if defined(FREERTOS_TCP)
|
||||
#include "FreeRTOS_IP.h"
|
||||
#include "FreeRTOS_Sockets.h"
|
||||
#include "platform/iot_network.h"
|
||||
#include "platform.h"
|
||||
#endif
|
||||
|
||||
#if defined(BENCHMARK)
|
||||
#include "r_cmt_rx_if.h"
|
||||
#endif
|
||||
@@ -60,7 +64,7 @@
|
||||
static WOLFSSL_CTX* client_ctx;
|
||||
#endif /* TLS_CLIENT */
|
||||
|
||||
#define TLSSERVER_IP "192.168.1.12"
|
||||
#define TLSSERVER_IP "192.168.11.49"
|
||||
#define TLSSERVER_PORT 11111
|
||||
#define YEAR 2022
|
||||
#define MON 3
|
||||
@@ -167,7 +171,7 @@ static void Tls_client_init(const char* cipherlist)
|
||||
|
||||
/* Create and initialize WOLFSSL_CTX */
|
||||
if ((client_ctx =
|
||||
wolfSSL_CTX_new(wolfTLSv1_2_client_method_ex((void *)NULL))) == NULL) {
|
||||
wolfSSL_CTX_new(wolfSSLv23_client_method_ex((void *)NULL))) == NULL) {
|
||||
printf("ERROR: failed to create WOLFSSL_CTX\n");
|
||||
return;
|
||||
}
|
||||
@@ -176,21 +180,79 @@ static void Tls_client_init(const char* cipherlist)
|
||||
tsip_set_callbacks(client_ctx);
|
||||
#endif
|
||||
|
||||
/* load root CA certificate */
|
||||
#if defined(NO_FILESYSTEM)
|
||||
|
||||
if (wolfSSL_CTX_load_verify_buffer(client_ctx, cert,
|
||||
SIZEOF_CERT, SSL_FILETYPE_ASN1) != SSL_SUCCESS) {
|
||||
printf("ERROR: can't load certificate data\n");
|
||||
return;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
if (wolfSSL_CTX_load_verify_locations(client_ctx, cert, 0) != SSL_SUCCESS) {
|
||||
printf("ERROR: can't load \"%s\"\n", cert);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* load client certificate */
|
||||
#ifdef USE_ECC_CERT
|
||||
if (wolfSSL_CTX_use_certificate_chain_buffer_format(client_ctx,
|
||||
cliecc_cert_der_256,
|
||||
sizeof_cliecc_cert_der_256,
|
||||
WOLFSSL_FILETYPE_ASN1) != SSL_SUCCESS) {
|
||||
printf("ERROR: can't load client-certificate\n");
|
||||
return;
|
||||
}
|
||||
#else
|
||||
if (wolfSSL_CTX_use_certificate_chain_buffer_format(client_ctx,
|
||||
client_cert_der_2048,
|
||||
sizeof_client_cert_der_2048,
|
||||
WOLFSSL_FILETYPE_ASN1) != SSL_SUCCESS) {
|
||||
printf("ERROR: can't load client-certificate\n");
|
||||
return;
|
||||
}
|
||||
#endif /* USE_ECC_CERT */
|
||||
|
||||
/* load client private key */
|
||||
#ifdef USE_ECC_CERT
|
||||
#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_RENESAS_TSIP_TLS) && \
|
||||
(WOLFSSL_RENESAS_TSIP_VER >= 115 )
|
||||
if (tsip_set_clientPrivateKeyEnc(
|
||||
g_key_block_data.encrypted_user_ecc256_private_key,
|
||||
TSIP_ECCP256) != 0) {
|
||||
printf("ERROR: can't load client-private key\n");
|
||||
return;
|
||||
}
|
||||
#else
|
||||
if (wolfSSL_CTX_use_PrivateKey_buffer(client_ctx,
|
||||
ecc_clikey_der_256,
|
||||
sizeof_ecc_clikey_der_256,
|
||||
SSL_FILETYPE_ASN1) != WOLFSSL_SUCCESS) {
|
||||
printf("ERROR: can't load private-key data.\n");
|
||||
return;
|
||||
}
|
||||
#endif /* WOLFSSL_TLS13 */
|
||||
#else
|
||||
if (wolfSSL_CTX_use_PrivateKey_buffer(client_ctx,
|
||||
client_key_der_2048,
|
||||
sizeof_client_key_der_2048,
|
||||
SSL_FILETYPE_ASN1)
|
||||
!= WOLFSSL_SUCCESS) {
|
||||
printf("ERROR: can't load private-key data.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
#endif /* USE_ECC_CERT */
|
||||
|
||||
#if defined(WOLFSSL_TLS13) && defined(WOLFSSL_RENESAS_TSIP_TLS) && \
|
||||
(WOLFSSL_RENESAS_TSIP_VER >= 115)
|
||||
|
||||
if (wolfSSL_CTX_UseSupportedCurve(client_ctx, WOLFSSL_ECC_SECP256R1)
|
||||
!= WOLFSSL_SUCCESS) {
|
||||
wolfSSL_CTX_free(client_ctx); client_ctx = NULL;
|
||||
printf("client can't set use supported curves\n");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -316,13 +378,26 @@ static void Tls_client_demo(void)
|
||||
|
||||
#ifdef USE_ECC_CERT
|
||||
const char* cipherlist[] = {
|
||||
#if defined(WOLFSSL_TLS13)
|
||||
"TLS13-AES128-GCM-SHA256",
|
||||
"TLS13-AES128-CCM-SHA256",
|
||||
#endif
|
||||
"ECDHE-ECDSA-AES128-GCM-SHA256",
|
||||
"ECDHE-ECDSA-AES128-SHA256"
|
||||
};
|
||||
const int cipherlist_sz = 2;
|
||||
int cipherlist_sz;
|
||||
#if defined(WOLFSSL_TLS13)
|
||||
cipherlist_sz = 2;
|
||||
#else
|
||||
cipherlist_sz = 2;
|
||||
#endif
|
||||
|
||||
#else
|
||||
const char* cipherlist[] = {
|
||||
#if defined(WOLFSSL_TLS13)
|
||||
"TLS13-AES128-GCM-SHA256",
|
||||
"TLS13-AES128-CCM-SHA256",
|
||||
#endif
|
||||
"ECDHE-RSA-AES128-GCM-SHA256",
|
||||
"ECDHE-RSA-AES128-SHA256",
|
||||
"AES128-SHA",
|
||||
@@ -330,7 +405,12 @@ static void Tls_client_demo(void)
|
||||
"AES256-SHA",
|
||||
"AES256-SHA256"
|
||||
};
|
||||
const int cipherlist_sz = 6;
|
||||
int cipherlist_sz;
|
||||
#if defined(WOLFSSL_TLS13)
|
||||
cipherlist_sz = 2;
|
||||
#else
|
||||
cipherlist_sz = 6;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -373,8 +453,6 @@ static void Tls_client_demo(void)
|
||||
(byte*)&g_key_block_data.encrypted_user_rsa2048_ne_key,
|
||||
encrypted_user_key_type);
|
||||
|
||||
guser_PKCbInfo.user_key_id = 0;
|
||||
|
||||
#endif /* WOLFSSL_RENESAS_TSIP_TLS && (WOLFSSL_RENESAS_TSIP_VER >=109) */
|
||||
|
||||
do {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* wolfssl_demo.h
|
||||
*
|
||||
* Copyright (C) 2006-2021 wolfSSL Inc.
|
||||
* Copyright (C) 2006-2022 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL.
|
||||
*
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# STM Benchmarks
|
||||
|
||||
* [STM32H753ZI](#stm32h753zi)
|
||||
* [STM32WB55](#stm32wb55)
|
||||
* [STM32F437](#stm32f437)
|
||||
* [STM32L4A6Z](#stm32l4a6z)
|
||||
* [STM32L562E](#stm32l562e)
|
||||
* [STM32F777](#stm32f777)
|
||||
* [STM32U585](#stm32u585)
|
||||
|
||||
## STM32H753ZI
|
||||
|
||||
Supports RNG, AES CBC/GCM and SHA-2 acceleration.
|
||||
@@ -562,3 +570,141 @@ ECDSA 256 verify 2 ops took 1.463 sec, avg 731.500 ms, 1.367 ops/sec
|
||||
Benchmark complete
|
||||
Benchmark Test: Return code 0
|
||||
```
|
||||
|
||||
## STM32U585
|
||||
|
||||
Supports RNG, AES CBC/GCM and SHA-1,SHA-2 acceleration.
|
||||
|
||||
Board: B-U585I-IOT02A
|
||||
CPU: Cortex-M33 at 160 MHz
|
||||
IDE: STM32CubeIDE
|
||||
RTOS: FreeRTOS
|
||||
|
||||
### STM32U585 (STM Symmetric AES/SHA acceleration, STM PKA PKA w/Fast Math)
|
||||
|
||||
This test uses `WOLFSSL_SMALL_STACK_CACHE`, which slightly improves the DRBG RNG performance.
|
||||
|
||||
Only the ECC sign and verify are currently being accelerated by PKA.
|
||||
|
||||
```
|
||||
------------------------------------------------------------------------------
|
||||
wolfSSL version 5.3.1
|
||||
------------------------------------------------------------------------------
|
||||
Running wolfCrypt Benchmarks...
|
||||
wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
|
||||
RNG 575 KB took 1.039 seconds, 553.417 KB/s
|
||||
AES-128-CBC-enc 6 MB took 1.000 seconds, 6.274 MB/s
|
||||
AES-128-CBC-dec 6 MB took 1.000 seconds, 6.128 MB/s
|
||||
AES-256-CBC-enc 6 MB took 1.000 seconds, 6.274 MB/s
|
||||
AES-256-CBC-dec 6 MB took 1.000 seconds, 6.152 MB/s
|
||||
AES-128-GCM-enc 6 MB took 1.000 seconds, 5.640 MB/s
|
||||
AES-128-GCM-dec 6 MB took 1.000 seconds, 5.566 MB/s
|
||||
AES-256-GCM-enc 6 MB took 1.000 seconds, 5.615 MB/s
|
||||
AES-256-GCM-dec 6 MB took 1.000 seconds, 5.542 MB/s
|
||||
GMAC Small 11 MB took 1.000 seconds, 11.499 MB/s
|
||||
CHACHA 4 MB took 1.000 seconds, 3.882 MB/s
|
||||
CHA-POLY 2 MB took 1.008 seconds, 2.470 MB/s
|
||||
3DES 200 KB took 1.071 seconds, 186.741 KB/s
|
||||
MD5 6 MB took 1.000 seconds, 6.299 MB/s
|
||||
POLY1305 10 MB took 1.000 seconds, 10.449 MB/s
|
||||
SHA 6 MB took 1.000 seconds, 6.299 MB/s
|
||||
SHA-256 6 MB took 1.000 seconds, 6.250 MB/s
|
||||
HMAC-MD5 6 MB took 1.000 seconds, 6.177 MB/s
|
||||
HMAC-SHA 6 MB took 1.000 seconds, 6.177 MB/s
|
||||
HMAC-SHA256 6 MB took 1.000 seconds, 6.104 MB/s
|
||||
RSA 2048 public 28 ops took 1.031 sec, avg 36.821 ms, 27.158 ops/sec
|
||||
RSA 2048 private 2 ops took 4.310 sec, avg 2155.000 ms, 0.464 ops/sec
|
||||
DH 2048 key gen 3 ops took 1.197 sec, avg 399.000 ms, 2.506 ops/sec
|
||||
DH 2048 agree 2 ops took 1.525 sec, avg 762.500 ms, 1.311 ops/sec
|
||||
ECC [ SECP256R1] 256 key gen 50 ops took 1.019 sec, avg 20.380 ms, 49.068 ops/sec
|
||||
ECDHE [ SECP256R1] 256 agree 52 ops took 1.008 sec, avg 19.385 ms, 51.587 ops/sec
|
||||
ECDSA [ SECP256R1] 256 sign 56 ops took 1.000 sec, avg 17.857 ms, 56.000 ops/sec
|
||||
ECDSA [ SECP256R1] 256 verify 56 ops took 1.008 sec, avg 18.000 ms, 55.556 ops/sec
|
||||
Benchmark complete
|
||||
Benchmark Test: Return code 0
|
||||
```
|
||||
|
||||
|
||||
### STM32U585 (STM Symmetric AES/SHA acceleration, SP Math ASM Cortex M)
|
||||
|
||||
```
|
||||
------------------------------------------------------------------------------
|
||||
wolfSSL version 5.3.1
|
||||
------------------------------------------------------------------------------
|
||||
Running wolfCrypt Benchmarks...
|
||||
wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
|
||||
RNG 250 KB took 1.039 seconds, 240.616 KB/s
|
||||
AES-128-CBC-enc 6 MB took 1.000 seconds, 6.152 MB/s
|
||||
AES-128-CBC-dec 6 MB took 1.004 seconds, 6.031 MB/s
|
||||
AES-256-CBC-enc 6 MB took 1.000 seconds, 6.152 MB/s
|
||||
AES-256-CBC-dec 6 MB took 1.000 seconds, 6.055 MB/s
|
||||
AES-128-GCM-enc 6 MB took 1.000 seconds, 5.542 MB/s
|
||||
AES-128-GCM-dec 5 MB took 1.000 seconds, 5.493 MB/s
|
||||
AES-256-GCM-enc 6 MB took 1.000 seconds, 5.518 MB/s
|
||||
AES-256-GCM-dec 5 MB took 1.000 seconds, 5.469 MB/s
|
||||
GMAC Small 11 MB took 1.000 seconds, 11.182 MB/s
|
||||
CHACHA 3 MB took 1.004 seconds, 3.429 MB/s
|
||||
CHA-POLY 2 MB took 1.000 seconds, 2.271 MB/s
|
||||
3DES 175 KB took 1.000 seconds, 175.000 KB/s
|
||||
MD5 8 MB took 1.000 seconds, 8.008 MB/s
|
||||
POLY1305 10 MB took 1.000 seconds, 10.181 MB/s
|
||||
SHA 8 MB took 1.000 seconds, 7.983 MB/s
|
||||
SHA-256 8 MB took 1.000 seconds, 7.910 MB/s
|
||||
HMAC-MD5 8 MB took 1.000 seconds, 7.812 MB/s
|
||||
HMAC-SHA 8 MB took 1.000 seconds, 7.812 MB/s
|
||||
HMAC-SHA256 8 MB took 1.000 seconds, 7.642 MB/s
|
||||
RSA 2048 public 52 ops took 1.000 sec, avg 19.231 ms, 52.000 ops/sec
|
||||
RSA 2048 private 2 ops took 1.381 sec, avg 690.500 ms, 1.448 ops/sec
|
||||
DH 2048 key gen 4 ops took 1.263 sec, avg 315.750 ms, 3.167 ops/sec
|
||||
DH 2048 agree 4 ops took 1.262 sec, avg 315.500 ms, 3.170 ops/sec
|
||||
ECC [ SECP256R1] 256 key gen 108 ops took 1.016 sec, avg 9.407 ms, 106.299 ops/sec
|
||||
ECDHE [ SECP256R1] 256 agree 58 ops took 1.032 sec, avg 17.793 ms, 56.202 ops/sec
|
||||
ECDSA [ SECP256R1] 256 sign 64 ops took 1.027 sec, avg 16.047 ms, 62.317 ops/sec
|
||||
ECDSA [ SECP256R1] 256 verify 36 ops took 1.019 sec, avg 28.306 ms, 35.329 ops/sec
|
||||
Benchmark complete
|
||||
Benchmark Test: Return code 0
|
||||
```
|
||||
|
||||
### STM32U585 (No STM HW Crypto, SP Math C32)
|
||||
|
||||
```
|
||||
------------------------------------------------------------------------------
|
||||
wolfSSL version 5.3.1
|
||||
------------------------------------------------------------------------------
|
||||
Running wolfCrypt Benchmarks...
|
||||
wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
|
||||
RNG 750 KB took 1.015 seconds, 738.916 KB/s
|
||||
AES-128-CBC-enc 900 KB took 1.004 seconds, 896.414 KB/s
|
||||
AES-128-CBC-dec 900 KB took 1.012 seconds, 889.328 KB/s
|
||||
AES-192-CBC-enc 775 KB took 1.004 seconds, 771.912 KB/s
|
||||
AES-192-CBC-dec 775 KB took 1.023 seconds, 757.576 KB/s
|
||||
AES-256-CBC-enc 675 KB took 1.000 seconds, 675.000 KB/s
|
||||
AES-256-CBC-dec 675 KB took 1.031 seconds, 654.704 KB/s
|
||||
AES-128-GCM-enc 50 KB took 1.035 seconds, 48.309 KB/s
|
||||
AES-128-GCM-dec 50 KB took 1.036 seconds, 48.263 KB/s
|
||||
AES-192-GCM-enc 50 KB took 1.051 seconds, 47.574 KB/s
|
||||
AES-192-GCM-dec 50 KB took 1.051 seconds, 47.574 KB/s
|
||||
AES-256-GCM-enc 50 KB took 1.067 seconds, 46.860 KB/s
|
||||
AES-256-GCM-dec 50 KB took 1.070 seconds, 46.729 KB/s
|
||||
GMAC Small 52 KB took 1.004 seconds, 51.793 KB/s
|
||||
CHACHA 4 MB took 1.000 seconds, 3.833 MB/s
|
||||
CHA-POLY 2 MB took 1.004 seconds, 2.456 MB/s
|
||||
3DES 200 KB took 1.074 seconds, 186.220 KB/s
|
||||
MD5 6 MB took 1.000 seconds, 6.274 MB/s
|
||||
POLY1305 10 MB took 1.000 seconds, 10.400 MB/s
|
||||
SHA 5 MB took 1.000 seconds, 5.225 MB/s
|
||||
SHA-256 2 MB took 1.004 seconds, 1.970 MB/s
|
||||
HMAC-MD5 6 MB took 1.000 seconds, 6.201 MB/s
|
||||
HMAC-SHA 5 MB took 1.000 seconds, 5.176 MB/s
|
||||
HMAC-SHA256 2 MB took 1.000 seconds, 1.953 MB/s
|
||||
RSA 2048 public 36 ops took 1.008 sec, avg 28.000 ms, 35.714 ops/sec
|
||||
RSA 2048 private 2 ops took 3.216 sec, avg 1608.000 ms, 0.622 ops/sec
|
||||
DH 2048 key gen 2 ops took 1.416 sec, avg 708.000 ms, 1.412 ops/sec
|
||||
DH 2048 agree 2 ops took 1.419 sec, avg 709.500 ms, 1.409 ops/sec
|
||||
ECC [ SECP256R1] 256 key gen 8 ops took 1.169 sec, avg 146.125 ms, 6.843 ops/sec
|
||||
ECDHE [ SECP256R1] 256 agree 8 ops took 1.165 sec, avg 145.625 ms, 6.867 ops/sec
|
||||
ECDSA [ SECP256R1] 256 sign 8 ops took 1.314 sec, avg 164.250 ms, 6.088 ops/sec
|
||||
ECDSA [ SECP256R1] 256 verify 4 ops took 1.196 sec, avg 299.000 ms, 3.344 ops/sec
|
||||
Benchmark complete
|
||||
Benchmark Test: Return code 0
|
||||
```
|
||||
|
||||
@@ -114,6 +114,9 @@ extern ${variable.value} ${variable.name};
|
||||
#elif defined(STM32F207xx)
|
||||
#define WOLFSSL_STM32F2
|
||||
#define HAL_CONSOLE_UART huart3
|
||||
#elif defined(STM32F217xx)
|
||||
#define WOLFSSL_STM32F2
|
||||
#define HAL_CONSOLE_UART huart2
|
||||
#elif defined(STM32F107xC)
|
||||
#define WOLFSSL_STM32F1
|
||||
#define HAL_CONSOLE_UART huart4
|
||||
@@ -132,12 +135,18 @@ extern ${variable.value} ${variable.name};
|
||||
#define HAL_CONSOLE_UART huart1
|
||||
#define WOLFSSL_STM32U5
|
||||
#define STM32_HAL_V2
|
||||
#ifdef STM32U585xx
|
||||
#undef NO_STM32_HASH
|
||||
#undef NO_STM32_CRYPTO
|
||||
#define WOLFSSL_STM32_PKA
|
||||
#endif
|
||||
#else
|
||||
#warning Please define a hardware platform!
|
||||
/* This means there is not a pre-defined platform for your board/CPU */
|
||||
/* You need to define a CPU type, HW crypto and debug UART */
|
||||
/* CPU Type: WOLFSSL_STM32F1, WOLFSSL_STM32F2, WOLFSSL_STM32F4,
|
||||
WOLFSSL_STM32F7, WOLFSSL_STM32H7, WOLFSSL_STM32L4 and WOLFSSL_STM32L5 */
|
||||
WOLFSSL_STM32F7, WOLFSSL_STM32H7, WOLFSSL_STM32L4, WOLFSSL_STM32L5,
|
||||
WOLFSSL_STM32G0, WOLFSSL_STM32WB and WOLFSSL_STM32U5 */
|
||||
#define WOLFSSL_STM32F4
|
||||
|
||||
/* Debug UART used for printf */
|
||||
@@ -150,7 +159,7 @@ extern ${variable.value} ${variable.name};
|
||||
//#define NO_STM32_RNG
|
||||
//#undef NO_STM32_HASH
|
||||
//#undef NO_STM32_CRYPTO
|
||||
//#define WOLFSSL_GENSEED_FORTEST
|
||||
//#define WOLFSSL_GENSEED_FORTEST /* if no HW RNG is available use test seed */
|
||||
//#define STM32_HAL_V2
|
||||
#endif
|
||||
|
||||
@@ -264,8 +273,14 @@ extern ${variable.value} ${variable.name};
|
||||
#if defined(WOLF_CONF_BASE64_ENCODE) && WOLF_CONF_BASE64_ENCODE == 1
|
||||
#define WOLFSSL_BASE64_ENCODE
|
||||
#endif
|
||||
#if defined(WOLF_CONF_OPENSSL_EXTRA) && WOLF_CONF_OPENSSL_EXTRA == 1
|
||||
#if defined(WOLF_CONF_OPENSSL_EXTRA) && WOLF_CONF_OPENSSL_EXTRA >= 1
|
||||
#define OPENSSL_EXTRA
|
||||
#if !defined(INT_MAX)
|
||||
#include <limits.h>
|
||||
#endif
|
||||
#endif
|
||||
#if defined(WOLF_CONF_OPENSSL_EXTRA) && WOLF_CONF_OPENSSL_EXTRA >= 2
|
||||
#define OPENSSL_ALL
|
||||
#endif
|
||||
|
||||
/* TLS Session Cache */
|
||||
@@ -379,8 +394,8 @@ extern ${variable.value} ${variable.name};
|
||||
/* AES */
|
||||
#if defined(WOLF_CONF_AESGCM) && WOLF_CONF_AESGCM == 1
|
||||
#define HAVE_AESGCM
|
||||
/* GCM Method: GCM_SMALL, GCM_WORD32 or GCM_TABLE */
|
||||
/* GCM_TABLE is about 4K larger and 3x faster */
|
||||
/* GCM Method: GCM_SMALL, GCM_WORD32, GCM_TABLE or GCM_TABLE_4BIT */
|
||||
/* GCM_TABLE is about 4K larger and 3x faster for GHASH */
|
||||
#define GCM_SMALL
|
||||
#define HAVE_AES_DECRYPT
|
||||
#endif
|
||||
|
||||
@@ -548,7 +548,7 @@ static int ServerMemRecv(info_t* info, char* buf, int sz)
|
||||
}
|
||||
osSemaphoreAcquire(info->server.mutex, osWaitForever);
|
||||
#else
|
||||
if (osSignalWait(1, RECV_WAIT_TIMEOUT) == osEventTimeout) {
|
||||
if (osSignalWait(1, RECV_WAIT_TIMEOUT).status == osEventTimeout) {
|
||||
printf("Server Recv: Timeout!\n");
|
||||
return WOLFSSL_CBIO_ERR_TIMEOUT;
|
||||
}
|
||||
@@ -644,7 +644,7 @@ static int ClientMemRecv(info_t* info, char* buf, int sz)
|
||||
}
|
||||
osSemaphoreAcquire(info->client.mutex, osWaitForever);
|
||||
#else
|
||||
if (osSignalWait(1, RECV_WAIT_TIMEOUT) == osEventTimeout) {
|
||||
if (osSignalWait(1, RECV_WAIT_TIMEOUT).status == osEventTimeout) {
|
||||
printf("Client Recv: Timeout!\n");
|
||||
return WOLFSSL_CBIO_ERR_TIMEOUT;
|
||||
}
|
||||
@@ -977,7 +977,7 @@ static void client_thread(const void* args)
|
||||
osThreadSuspend(info->client.threadId);
|
||||
|
||||
if (info->doShutdown)
|
||||
info->client.done = 1;
|
||||
info->server.done = 1;
|
||||
} while (!info->doShutdown);
|
||||
|
||||
osThreadTerminate(info->client.threadId);
|
||||
@@ -1252,7 +1252,7 @@ static void server_thread(const void* args)
|
||||
osThreadSuspend(info->server.threadId);
|
||||
|
||||
if (info->doShutdown)
|
||||
info->server.done = 1;
|
||||
info->client.done = 1;
|
||||
} while (!info->doShutdown);
|
||||
|
||||
osThreadTerminate(info->server.threadId);
|
||||
|
||||
@@ -307,6 +307,8 @@
|
||||
<ClCompile Include="..\..\wolfcrypt\src\signature.c" />
|
||||
<ClCompile Include="..\..\src\ssl.c" />
|
||||
<ClCompile Include="..\..\src\tls.c" />
|
||||
<ClCompile Include="..\..\src\tls13.c" />
|
||||
<ClCompile Include="..\..\src\dtls13.c" />
|
||||
<ClCompile Include="..\..\wolfcrypt\src\wc_encrypt.c" />
|
||||
<ClCompile Include="..\..\wolfcrypt\src\wolfmath.c" />
|
||||
<ClCompile Include="..\..\wolfcrypt\src\wolfevent.c" />
|
||||
|
||||
@@ -51,8 +51,8 @@ END
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 5,3,0,0
|
||||
PRODUCTVERSION 5,3,0,0
|
||||
FILEVERSION 5,4,0,0
|
||||
PRODUCTVERSION 5,4,0,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
@@ -69,12 +69,12 @@ BEGIN
|
||||
BEGIN
|
||||
VALUE "CompanyName", "wolfSSL Inc."
|
||||
VALUE "FileDescription", "The wolfSSL FIPS embedded SSL library is a lightweight, portable, C-language-based SSL/TLS library targeted at IoT, embedded, and RTOS environments primarily because of its size, speed, and feature set."
|
||||
VALUE "FileVersion", "5.3.0.0"
|
||||
VALUE "FileVersion", "5.4.0.0"
|
||||
VALUE "InternalName", "wolfssl-fips"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2022"
|
||||
VALUE "OriginalFilename", "wolfssl-fips.dll"
|
||||
VALUE "ProductName", "wolfSSL FIPS"
|
||||
VALUE "ProductVersion", "5.3.0.0"
|
||||
VALUE "ProductVersion", "5.4.0.0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
||||
@@ -278,6 +278,7 @@
|
||||
<ClCompile Include="..\..\src\ssl.c" />
|
||||
<ClCompile Include="..\..\src\tls.c" />
|
||||
<ClCompile Include="..\..\src\tls13.c" />
|
||||
<ClCompile Include="..\..\src\dtls13.c" />
|
||||
<ClCompile Include="..\..\wolfcrypt\src\wc_encrypt.c" />
|
||||
<ClCompile Include="..\..\wolfcrypt\src\wolfcrypt_first.c" />
|
||||
<ClCompile Include="..\..\wolfcrypt\src\wolfcrypt_last.c" />
|
||||
|
||||
@@ -16,6 +16,7 @@ include IDE/INTIME-RTOS/include.am
|
||||
include IDE/KDS/include.am
|
||||
include IDE/STM32Cube/include.am
|
||||
include IDE/VS-ARM/include.am
|
||||
include IDE/MSVS-2019-AZSPHERE/include.am
|
||||
include IDE/VS-AZURE-SPHERE/include.am
|
||||
include IDE/GCC-ARM/include.am
|
||||
include IDE/CSBENCH/include.am
|
||||
@@ -46,6 +47,7 @@ include IDE/iotsafe/include.am
|
||||
include IDE/Android/include.am
|
||||
include IDE/NETOS/include.am
|
||||
include IDE/IAR-MSP430/include.am
|
||||
include IDE/zephyr/include.am
|
||||
|
||||
EXTRA_DIST+= IDE/IAR-EWARM IDE/MDK-ARM IDE/MDK5-ARM IDE/MYSQL IDE/LPCXPRESSO IDE/HEXIWEAR IDE/Espressif
|
||||
EXTRA_DIST+= IDE/OPENSTM32/README.md
|
||||
|
||||
3
IDE/zephyr/README.md
Normal file
3
IDE/zephyr/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Zephyr
|
||||
|
||||
Zephyr Project Port has been moved to [wolfssl/zephyr](../../zephyr/README.md)
|
||||
5
IDE/zephyr/include.am
Normal file
5
IDE/zephyr/include.am
Normal file
@@ -0,0 +1,5 @@
|
||||
# vim:ft=automake
|
||||
# included from Top Level Makefile.am
|
||||
# All paths should be given relative to the root
|
||||
|
||||
EXTRA_DIST+= IDE/zephyr/README.md
|
||||
285
README
285
README
@@ -70,163 +70,162 @@ should be used for the enum name.
|
||||
|
||||
*** end Notes ***
|
||||
|
||||
# wolfSSL Release 5.3.0 (May 3rd, 2022)
|
||||
# wolfSSL Release 5.4.0 (July 11, 2022)
|
||||
|
||||
Note:
|
||||
** Future releases of wolfSSL will turn off TLS 1.1 by default
|
||||
** Release 5.4.0 made SP math the default math implementation. To make an equivalent build as –disable-fastmath from previous versions of wolfSSL, now requires using the configure option –enable-heapmath instead.
|
||||
|
||||
Release 5.4.0 of wolfSSL embedded TLS has bug fixes and new features including:
|
||||
|
||||
## Vulnerabilities
|
||||
* [High] Potential for DTLS DoS attack. In wolfSSL versions before 5.4.0 the return-routability check is wrongly skipped in a specific edge case. The check on the return-routability is there for stopping attacks that either consume excessive resources on the server, or try to use the server as an amplifier sending an excessive amount of messages to a victim IP. If using DTLS 1.0/1.2 on the server side users should update to avoid the potential DoS attack. CVE-2022-34293
|
||||
* [Medium] Ciphertext side channel attack on ECC and DH operations. Users on systems where rogue agents can monitor memory use should update the version of wolfSSL and change private ECC keys. Thanks to Sen Deng from Southern University of Science and Technology (SUSTech) for the report.
|
||||
* [Medium] Public disclosure of a side channel vulnerability that has been fixed since wolfSSL version 5.1.0. When running on AMD there is the potential to leak private key information with ECDSA operations due to a ciphertext side channel attack. Users on AMD doing ECDSA operations with wolfSSL versions less than 5.1.0 should update their wolfSSL version used. Thanks to professor Yinqian Zhang from Southern University of Science and Technology (SUSTech), his Ph.D. student Mengyuan Li from The Ohio State University, and his M.S students Sen Deng and Yining Tang from SUStech along with other collaborators; Luca Wilke, Jan Wichelmann and Professor Thomas Eisenbarth from the University of Lubeck, Professor Shuai Wang from Hong Kong University of Science and Technology, Professor Radu Teodorescu from The Ohio State University, Huibo Wang, Kang Li and Yueqiang Cheng from Baidu Security and Shoumeng Yang from Ant Financial Services Group.
|
||||
CVE-2020-12966 https://www.amd.com/en/corporate/product-security/bulletin/amd-sb-1013 CVE-2021-46744 https://www.amd.com/en/corporate/product-security/bulletin/amd-sb-1033
|
||||
|
||||
Release 5.3.0 of wolfSSL embedded TLS has bug fixes and new features including:
|
||||
|
||||
## New Feature Additions
|
||||
|
||||
### DTLS 1.3
|
||||
* Support for using the new DTLSv1.3 protocol was added
|
||||
* Enhancements to bundled examples for an event driven server with DTLS 1.3 was added
|
||||
### Ports
|
||||
* Updated support for Stunnel to version 5.61
|
||||
* Add i.MX8 NXP SECO use for secure private ECC keys and expand cryptodev-linux for use with the RSA/Curve25519 with the Linux CAAM driver
|
||||
* Allow encrypt then mac with Apache port
|
||||
* Update Renesas TSIP version to 1.15 on GR-ROSE and certificate signature data for TSIP / SCE example
|
||||
* Add IAR MSP430 example, located in IDE/IAR-MSP430 directory
|
||||
* Add support for FFMPEG with the enable option `--enable-ffmpeg`, FFMPEG is used for recording and converting video and audio (https://ffmpeg.org/)
|
||||
* Update the bind port to version 9.18.0
|
||||
|
||||
### Post Quantum
|
||||
* Add Post-quantum KEM benchmark for STM32
|
||||
* Enable support for using post quantum algorithms with embedded STM32 boards and port to STM32U585
|
||||
|
||||
### Compatibility Layer Additions
|
||||
* Add port to support libspdm (https://github.com/DMTF/libspdm/blob/main/README.md), compatibility functions added for the port were:
|
||||
- ASN1_TIME_compare
|
||||
- DH_new_by_nid
|
||||
- OBJ_length, OBJ_get0_data,
|
||||
- EVP layer ChaCha20-Poly1305, HKDF
|
||||
- EC_POINT_get_affine_coordinates
|
||||
- EC_POINT_set_affine_coordinates
|
||||
* Additional functions added were:
|
||||
- EC_KEY_print_fp
|
||||
- EVP_PKEY_paramgen
|
||||
- EVP_PKEY_sign/verify functionality
|
||||
- PEM_write_RSAPublicKey
|
||||
- PEM_write_EC_PUBKEY
|
||||
- PKCS7_sign
|
||||
- PKCS7_final
|
||||
- SMIME_write_PKCS7
|
||||
- EC_KEY/DH_up_ref
|
||||
- EVP_DecodeBlock
|
||||
- EVP_EncodeBlock
|
||||
- EC_KEY_get_conv_form
|
||||
- BIO_eof
|
||||
- Add support for BIO_CTRL_SET and BIO_CTRL_GET
|
||||
* Add compile time support for the type SSL_R_NULL_SSL_METHOD_PASSED
|
||||
* Enhanced X509_NAME_print_ex() to support RFC5523 basic escape
|
||||
* More checks on OPENSSL_VERSION_NUMBER for API prototype differences
|
||||
* Add extended key usage support to wolfSSL_X509_set_ext
|
||||
* SSL_VERIFY_FAIL_IF_NO_PEER_CERT now can also connect with compatibility layer enabled and a TLS 1.3 PSK connection is used
|
||||
* Improve wolfSSL_BN_rand to handle non byte boundaries and top/bottom parameters
|
||||
* Changed X509_V_ERR codes to better match OpenSSL values used
|
||||
* Improve wolfSSL_i2d_X509_name to allow for a NULL input in order to get the expected resulting size
|
||||
* Enhance the smallstack build to reduce stack size farther when built with compatibility layer enabled
|
||||
|
||||
* Update for the version of VxWorks supported, adding in support for version 6.x
|
||||
* Support for new DPP and EAP-TEAP/EAP-FAST in wpa_supplicant
|
||||
* Update for TSIP version support, adding support for version 1.15 for RX65N and RX72N
|
||||
* Improved TSIP build to handle having the options WOLFSSL_AEAD_ONLY defined or NO_AES_CBC defined
|
||||
* Added support for offloading TLS1.3 operations to Renesas RX boards with TSIP
|
||||
### Misc.
|
||||
* Sniffer asynchronous support addition, handling of DH shared secret and tested with Intel QuickAssist
|
||||
* Added in support for OCSP with IPv6
|
||||
* Enhance SP (single precision) optimizations for use with the ECC P521
|
||||
* Add new public API wc_CheckCertSigPubKey() for use to easily check the signature of a certificate given a public key buffer
|
||||
* Add CSR (Certificate Signing Request) userId support in subject name
|
||||
* Injection and parsing of custom extensions in X.509 certificates
|
||||
* Add WOLF_CRYPTO_CB_ONLY_RSA and WOLF_CRYPTO_CB_ONLY_ECC to reduce code size if using only crypto callback functions with RSA and ECC
|
||||
* Created new --enable-engine configure flag used to build wolfSSL for use with wolfEngine
|
||||
* With TLS 1.3 PSK, when WOLFSSL_PSK_MULTI_ID_PER_CS is defined multiple IDs for a cipher suite can be handled
|
||||
* Added private key id/label support with improving the PK (Public Key) callbacks
|
||||
* Support for Intel QuickAssist ECC KeyGen acceleration
|
||||
* Add the function wolfSSL_CTX_SetCertCbCtx to set user context for certificate call back
|
||||
* Add the functions wolfSSL_CTX_SetEccSignCtx(WOLFSSL_CTX* ctx, void *userCtx) and wolfSSL_CTX_GetEccSignCtx(WOLFSSL_CTX* ctx) for setting and getting a user context
|
||||
* wolfRand for AMD --enable-amdrand
|
||||
* Constant time improvements due to development of new constant time tests
|
||||
* Initial translation of API headers to Japanese and expansion of Japanese help message support in example applications
|
||||
* Add support for some FPKI (Federal PKI) certificate cases, UUID, FASC-N, PIV extension for use with smart cards
|
||||
* Add support for parsing additional CSR attributes such as unstructured name and content type
|
||||
* Add support for Linux getrandom() when defining the macro WOLFSSL_GETRANDOM
|
||||
* Add TLS 1.2 ciphersuite ECDHE_PSK_WITH_AES_128_GCM_SHA256 from RFC 8442
|
||||
* Expand CAAM support with QNX to include i.MX8 boards and add AES-CTR support
|
||||
* Enhanced glitching protection by hardening the TLS encrypt operations
|
||||
|
||||
## Fixes
|
||||
### PORT Fixes
|
||||
* KCAPI memory optimizations and page alignment fixes for ECC, AES mode fixes and reduction to memory usage
|
||||
* Add the new kdf.c file to the TI-RTOS build
|
||||
* Fix wait-until-done in RSA hardware primitive acceleration of ESP-IDF port
|
||||
* IOTSafe workarounds when reading files with ending 0’s and for ECC signatures
|
||||
## Math and Performance
|
||||
|
||||
### Math Library Fixes
|
||||
* Sanity check with SP math that ECC points ordinates are not greater than modulus length
|
||||
* Additional sanity checks that _sp_add_d does not error due to overflow
|
||||
* Wycheproof fixes, testing integration, and fixes for AVX / AArch64 ASM edge case tests
|
||||
* TFM fp_div_2_ct rework to avoid potential overflow
|
||||
### SP Math Additions
|
||||
* Support for ARMv3, ARMv6 and ARMv7a
|
||||
- Changes and improvements to get SP building for armv7-a
|
||||
- Updated assembly for moving large immediate values on ARMv6
|
||||
- Support for architectures with no ldrd/strd and clz
|
||||
* Reworked generation using common asm ruby code for 32bit ARM
|
||||
* Enable wolfSSL SP math all by default (sp_int.c)
|
||||
* Update SP math all to not use sp_int_word when SQR_MUL_ASM is available
|
||||
### SP Math Fixes
|
||||
* Fixes for constant time with div function
|
||||
* Fix casting warnings for Windows builds and assembly changes to support XMM6-15 being non-volatile
|
||||
* Fix for div_word when not using div function
|
||||
* Fixes for user settings with SP ASM and ED/Curve25519 small
|
||||
* Additional Wycheproof tests ran and fixes
|
||||
* Fix for SP math ECC non-blocking to always check `hashLen`
|
||||
* Fix for SP math handling edge case with submod
|
||||
|
||||
### Misc.
|
||||
* Fix for PKCS#7 with Crypto Callbacks
|
||||
* Fix for larger curve sizes with deterministic ECC sign
|
||||
* Fixes for building wolfSSL alongside openssl using --enable-opensslcoexist
|
||||
* Fix for compatibility layer handling of certificates with SHA256 SKID (Subject Key ID)
|
||||
* Fix for wolfSSL_ASN1_TIME_diff erroring out on a return value of 0 from mktime
|
||||
* Remove extra padding when AES-CBC encrypted with PemToDer
|
||||
* Fixes for TLS v1.3 early data with async.
|
||||
* Fixes for async disables around the DevCopy calls
|
||||
* Fixes for Windows AES-NI with clang compiler
|
||||
* Fix for handling the detection of processing a plaintext TLS alert packet
|
||||
* Fix for potential memory leak in an error case with TLSX supported groups
|
||||
* Sanity check on `input` size in `DecodeNsCertType`
|
||||
* AES-GCM stack alignment fixes with assembly code written for AVX/AVX2
|
||||
* Fix for PK callbacks with server side and setting a public key
|
||||
## Improvements and Optimizations
|
||||
|
||||
## Improvements/Optimizations
|
||||
### Build Options and Warnings
|
||||
* Added example user settings template for FIPS v5 ready
|
||||
* Automake file touch cleanup for use with Yocto devtool
|
||||
* Allow disabling forced 'make clean' at the end of ./configure by using --disable-makeclean
|
||||
* Enable TLS 1.3 early data when specifying `--enable-all` option
|
||||
* Disable PK Callbacks with JNI FIPS builds
|
||||
* Add a FIPS cert 3389 ready option, this is the fips-ready build
|
||||
* Support (no)inline with Wind River Diab compiler
|
||||
* ECDH_compute_key allow setting of globalRNG with FIPS 140-3
|
||||
* Add logic equivalent to configure.ac in settings.h for Poly1305
|
||||
* Fixes to support building opensslextra with SP math
|
||||
* CPP protection for extern references to x86_64 asm code
|
||||
* Updates and enhancements for Espressif ESP-IDF wolfSSL setup_win.bat
|
||||
* Documentation improvements with auto generation
|
||||
* Fix reproducible-build for working an updated version of libtool, version 2.4.7
|
||||
* Fixes for Diab C89 and armclang
|
||||
* Fix `mcapi_test.c` to include the settings.h before crypto.h
|
||||
* Update and handle builds with NO_WOLFSSL_SERVER and NO_WOLFSSL_CLIENT
|
||||
* Fix for some macro defines with FIPS 140-3 build so that RSA_PKCS1_PSS_PADDING can be used with RSA sign/verify functions
|
||||
### Compatibility Layer
|
||||
* Provide access to "Finished" messages outside of compatibility layer builds
|
||||
* Remove unneeded FIPS guard on wolfSSL_EVP_PKEY_derive
|
||||
* Fix control command issues with AES-GCM, control command EVP_CTRL_GCM_IV_GEN
|
||||
* Add support for importing private only EC key to a WOLFSSL_EVP_PKEY struct
|
||||
* Add support for more extensions to wolfSSL_X509_print_ex
|
||||
* Update for internal to DER (i2d) AIPs to move the buffer pointer when passed in and the operation is successful
|
||||
* Return subject and issuer X509_NAME object even when not set
|
||||
### Ports
|
||||
* Renesas RA6M4 example update and fixes
|
||||
* Support multi-threaded use cases with Renesas SCE protected mode and TSIP
|
||||
* Add a global variable for heap-hint for use with TSIP
|
||||
* Changes to support v5.3.0 cube pack for STM32
|
||||
* Use the correct mutex type for embOS
|
||||
* ESP-IDF build cleanup and enhancements, adding in note regarding ESP-IDF Version
|
||||
* Support for SEGGER embOS and emNET
|
||||
* Fix to handle WOLFSSL_DTLS macro in Micrium build
|
||||
### Build Options
|
||||
* Support for verify only and no-PSS builds updated
|
||||
* Add the enable options wolfssh (mapped to the existing –enable-ssh)
|
||||
* Remove WOLFSSL_ALT_NAMES restriction on notBefore/notAfter use in Cert struct
|
||||
* Move several more definitions outside the BUILDING_WOLFSSL gate with linux kernel module build
|
||||
* Modify --enable-openssh to not enable non-FIPS algos for FIPS builds
|
||||
* Remove the Python wrappers from wolfSSL source (use pip install instead of using wolfSSL with Python and our separate Python repository)
|
||||
* Add --enable-openldap option to configure.ac for building the OpenLDAP port
|
||||
* Resolve DTLS build to handle not having –enable-hrrcookie when not needed
|
||||
* Add an --enable-strongswan option to configure.ac for building the Strongswan port
|
||||
* Improve defaults for 64-bit BSDs in configure
|
||||
* Crypto only build can now be used openssl extra
|
||||
* Update ASN template build to properly handle WOLFSSL_CERT_EXT and HAVE_OID_ENCODING
|
||||
* Allow using 3DES and MD5 with FIPS 140-3, as they fall outside of the FIPS boundary
|
||||
* Add the build option --enable-dh=const which replaces setting the macro WOLFSSL_DH_CONST and now conditionally link to -lm as needed
|
||||
* Add the macro WOLFSSL_HOSTNAME_VERIFY_ALT_NAME_ONLY which is used to verify hostname/ip address using alternate name (SAN) only and does not use the common name
|
||||
* WOLFSSL_DTLS_NO_HVR_ON_RESUME macro added (off by default to favor more security). If defined, a DTLS server will not do a cookie exchange on successful client resumption: the resumption will be faster (one RTT less) and will consume less bandwidth (one ClientHello and one HelloVerifyRequest less). On the other hand, if a valid SessionID is collected, forged clientHello messages will consume resources on the server.
|
||||
* Misc.
|
||||
* Refactoring of some internal TLS functions to reduce the memory usage
|
||||
* Make old less secure TimingPadVerify implementation available
|
||||
* Add support for aligned data with clang LLVM
|
||||
* Remove subject/issuer email from the list of alt. Email names in the DecodedCerts struct
|
||||
* Zeroizing of pre-master secret buffer in TLS 1.3
|
||||
* Update to allow TLS 1.3 application server to send session ticket
|
||||
* Improve the sniffer asynchronous test case to support multiple concurrent streams
|
||||
* Clean up wolfSSL_clear() and add more logging
|
||||
* Update to not error out on bad CRL next date if using NO_VERIFY when parsing
|
||||
* Add an example C# PSK client
|
||||
* Add ESP-IDF WOLFSSL_ESP8266 setting for ESP8266 devices
|
||||
* Support longer sigalg list for post quantum use cases and inter-op with OQS's OpenSSL fork
|
||||
* Improve AES-GCM word implementation of GMULT to be constant time
|
||||
* Additional sanity check with Ed25519/Ed448, now defaults to assume public key is not trusted
|
||||
* Support PSK ciphersuites in benchmark apps
|
||||
* FIPS in core hash using SHA2-256 and SHA2-384
|
||||
* Add ability to store issuer name components when parsing a certificate
|
||||
* Make the critical extension flags in DecodedCert always available
|
||||
* Updates to the default values for basic constraint with X509’s
|
||||
* Support using RSA OAEP with no malloc and add additional sanity checks
|
||||
* Leverage async code paths to support WANT_WRITE while sending packet fragments
|
||||
* New azsphere example for continuous integration testing
|
||||
* Update RSA key generation function to handle pairwise consistency tests with static memory pools used
|
||||
* Resolve build time warning by passing in and checking output length with internal SetCurve function
|
||||
* Support DTLS bidirectional shutdown in the examples
|
||||
* Improve DTLS version negotiation and downgrade capability
|
||||
|
||||
### Math Libraries
|
||||
* Add RSA/DH check for even modulus
|
||||
* Enhance TFM math to handle more alloc failure cases gracefully
|
||||
* SP ASM performance improvements mostly around AArch64
|
||||
* SP ASM improvements for additional cache attack resistance
|
||||
* Add RSA check for small difference between p and q
|
||||
* 6-8% performance increase with ECC operations using SP int by improving the Montgomery Reduction
|
||||
* Testing and Validation
|
||||
* All shell scripts in source tree now tested for correctness using shellcheck and bash -n
|
||||
* Added build testing under gcc-12 and -std=c++17 and fixed warnings
|
||||
* TLS 1.3 script test improvement to wait for server to write file
|
||||
* Unit tests for ECC r/s zeroness handling
|
||||
* CI server was expanded with a very “quiet” machine that can support multiple ContantTime tests ensuring ongoing mitigation against side-channel timing based attacks. Algorithms being assessed on this machine are: AES-CBC, AES-GCM, CHACHA20, ECC, POLY1305, RSA, SHA256, SHA512, CURVE25519.
|
||||
* Added new multi configuration windows builds to CI testing for greater testing coverage of windows use-cases
|
||||
### General Fixes
|
||||
* Fixes for STM32 Hash/PKA, add some missing mutex frees, and add an additional benchmark
|
||||
* Fix missing return checks in KSDK ED25519 code
|
||||
* Fix compilation warnings from IAR
|
||||
* Fixes for STM32U5/H7 hash/crypto support
|
||||
* Fix for using track memory feature with FreeRTOS
|
||||
* Fixup XSTR processing for MICRIUM
|
||||
* Update Zephyr fs.h path
|
||||
* DTLS fixes with WANT_WRITE simulations
|
||||
* Fixes for BER use with PKCS7 to have additional sanity checks and guards on edge cases
|
||||
* Fix to handle exceptional edge case with TFM mp_exptmod_ex
|
||||
* Fix for stack and heap measurements of a 32-bit build
|
||||
* Fix to allow enabling AES key wrap (direct) with KCAPI
|
||||
* Fix --enable-openssh FIPS detection syntax in configure.ac
|
||||
* Fix to move wolfSSL_ERR_clear_error outside gate for OPENSSL_EXTRA
|
||||
* Remove MCAPI project's dependency on zlib version
|
||||
* Only use __builtin_offset on supported GCC versions (4+)
|
||||
* Fix for c89 builds with using WOLF_C89
|
||||
* Fix 64bit postfix for constants building with powerpc
|
||||
* Fixed async Sniffer with TLS v1.3, async removal of `WC_HW_WAIT_E` and sanitize leak
|
||||
* Fix for QAT ECC to gate use of HW based on marker
|
||||
* Fix the supported version extension to always check minDowngrade
|
||||
* Fix for TLS v1.1 length sanity check for large messages
|
||||
* Fixes for loading a long DER/ASN.1 certificate chain
|
||||
* Fix to expose the RSA public DER export functions with certgen
|
||||
* Fixes for building with small version of SHA3
|
||||
* Fix configure with WOLFSSL_WPAS_SMALL
|
||||
* Fix to free PKCS7 recipient list in error cases
|
||||
* Sanity check to confirm ssl->hsHashes is not NULL before attempting to dereference it
|
||||
* Clear the leftover byte count in Aes struct when setting IV
|
||||
|
||||
### Misc.
|
||||
* Support for ECC import to check validity of key on import even if one of the coordinates (x or y) is 0
|
||||
* Modify example app to work with FreeRTOS+IoT
|
||||
* Ease of access for cert used for verifying a PKCS#7 bundle
|
||||
* Clean up Visual Studio output and intermediate directories
|
||||
* With TLS 1.3 fail immediately if a server sends empty certificate message
|
||||
* Enhance the benchmark application to support multi-threaded testing
|
||||
* Improvement for `wc_EccPublicKeyToDer` to not overestimate the buffer size required
|
||||
* Fix to check if `wc_EccPublicKeyToDer` has enough output buffer space
|
||||
* Fix year 2038 problem in wolfSSL_ASN1_TIME_diff
|
||||
* Various portability improvements (Time, DTLS epoch size, IV alloc)
|
||||
* Prefer status_request_v2 over status_request when both are present
|
||||
* Add separate "struct stat" definition XSTATSTRUCT to make overriding XSTAT easier for portability
|
||||
* With SipHash replace gcc specific ASM instruction with generic
|
||||
* Don't force a ECC CA when a custom CA is passed with `-A`
|
||||
* Add peer authentication failsafe for TLS 1.2 and below
|
||||
* Improve parsing of UID from subject and issuer name with the compatibility layer by
|
||||
* Fallback to full TLS handshake if session ticket fails
|
||||
* Internal refactoring of code to reduce ssl.c file size
|
||||
|
||||
For additional vulnerability information visit the vulnerability page at https://www.wolfssl.com/docs/security-vulnerabilities/
|
||||
For additional vulnerability information visit the vulnerability page at:
|
||||
https://www.wolfssl.com/docs/security-vulnerabilities/
|
||||
|
||||
See INSTALL file for build instructions.
|
||||
More info can be found on-line at https://wolfssl.com/wolfSSL/Docs.html
|
||||
More info can be found on-line at: https://wolfssl.com/wolfSSL/Docs.html
|
||||
# wolfSSL Release 5.3.0 (May 3rd, 2022)
|
||||
|
||||
|
||||
*** Resources ***
|
||||
|
||||
278
README.md
278
README.md
@@ -78,159 +78,155 @@ macro `NO_OLD_SHA_NAMES`. These names get mapped to the OpenSSL API for a
|
||||
single call hash function. Instead the name `WC_SHA`, `WC_SHA256`, `WC_SHA384` and
|
||||
`WC_SHA512` should be used for the enum name.
|
||||
|
||||
# wolfSSL Release 5.4.0 (July 11, 2022)
|
||||
|
||||
# wolfSSL Release 5.3.0 (May 3rd, 2022)
|
||||
Note:
|
||||
** Future releases of wolfSSL will turn off TLS 1.1 by default
|
||||
** Release 5.4.0 made SP math the default math implementation. To make an equivalent build as –disable-fastmath from previous versions of wolfSSL, now requires using the configure option –enable-heapmath instead.
|
||||
|
||||
Release 5.4.0 of wolfSSL embedded TLS has bug fixes and new features including:
|
||||
|
||||
## Vulnerabilities
|
||||
* [High] Potential for DTLS DoS attack. In wolfSSL versions before 5.4.0 the return-routability check is wrongly skipped in a specific edge case. The check on the return-routability is there for stopping attacks that either consume excessive resources on the server, or try to use the server as an amplifier sending an excessive amount of messages to a victim IP. If using DTLS 1.0/1.2 on the server side users should update to avoid the potential DoS attack. CVE-2022-34293
|
||||
* [Medium] Ciphertext side channel attack on ECC and DH operations. Users on systems where rogue agents can monitor memory use should update the version of wolfSSL and change private ECC keys. Thanks to Sen Deng from Southern University of Science and Technology (SUSTech) for the report.
|
||||
* [Medium] Public disclosure of a side channel vulnerability that has been fixed since wolfSSL version 5.1.0. When running on AMD there is the potential to leak private key information with ECDSA operations due to a ciphertext side channel attack. Users on AMD doing ECDSA operations with wolfSSL versions less than 5.1.0 should update their wolfSSL version used. Thanks to professor Yinqian Zhang from Southern University of Science and Technology (SUSTech), his Ph.D. student Mengyuan Li from The Ohio State University, and his M.S students Sen Deng and Yining Tang from SUStech along with other collaborators; Luca Wilke, Jan Wichelmann and Professor Thomas Eisenbarth from the University of Lubeck, Professor Shuai Wang from Hong Kong University of Science and Technology, Professor Radu Teodorescu from The Ohio State University, Huibo Wang, Kang Li and Yueqiang Cheng from Baidu Security and Shoumeng Yang from Ant Financial Services Group.
|
||||
CVE-2020-12966 https://www.amd.com/en/corporate/product-security/bulletin/amd-sb-1013 CVE-2021-46744 https://www.amd.com/en/corporate/product-security/bulletin/amd-sb-1033
|
||||
|
||||
Release 5.3.0 of wolfSSL embedded TLS has bug fixes and new features including:
|
||||
|
||||
## New Feature Additions
|
||||
|
||||
### DTLS 1.3
|
||||
* Support for using the new DTLSv1.3 protocol was added
|
||||
* Enhancements to bundled examples for an event driven server with DTLS 1.3 was added
|
||||
### Ports
|
||||
* Updated support for Stunnel to version 5.61
|
||||
* Add i.MX8 NXP SECO use for secure private ECC keys and expand cryptodev-linux for use with the RSA/Curve25519 with the Linux CAAM driver
|
||||
* Allow encrypt then mac with Apache port
|
||||
* Update Renesas TSIP version to 1.15 on GR-ROSE and certificate signature data for TSIP / SCE example
|
||||
* Add IAR MSP430 example, located in IDE/IAR-MSP430 directory
|
||||
* Add support for FFMPEG with the enable option `--enable-ffmpeg`, FFMPEG is used for recording and converting video and audio (https://ffmpeg.org/)
|
||||
* Update the bind port to version 9.18.0
|
||||
|
||||
### Post Quantum
|
||||
* Add Post-quantum KEM benchmark for STM32
|
||||
* Enable support for using post quantum algorithms with embedded STM32 boards and port to STM32U585
|
||||
|
||||
### Compatibility Layer Additions
|
||||
* Add port to support libspdm (https://github.com/DMTF/libspdm/blob/main/README.md), compatibility functions added for the port were:
|
||||
- ASN1_TIME_compare
|
||||
- DH_new_by_nid
|
||||
- OBJ_length, OBJ_get0_data,
|
||||
- EVP layer ChaCha20-Poly1305, HKDF
|
||||
- EC_POINT_get_affine_coordinates
|
||||
- EC_POINT_set_affine_coordinates
|
||||
* Additional functions added were:
|
||||
- EC_KEY_print_fp
|
||||
- EVP_PKEY_paramgen
|
||||
- EVP_PKEY_sign/verify functionality
|
||||
- PEM_write_RSAPublicKey
|
||||
- PEM_write_EC_PUBKEY
|
||||
- PKCS7_sign
|
||||
- PKCS7_final
|
||||
- SMIME_write_PKCS7
|
||||
- EC_KEY/DH_up_ref
|
||||
- EVP_DecodeBlock
|
||||
- EVP_EncodeBlock
|
||||
- EC_KEY_get_conv_form
|
||||
- BIO_eof
|
||||
- Add support for BIO_CTRL_SET and BIO_CTRL_GET
|
||||
* Add compile time support for the type SSL_R_NULL_SSL_METHOD_PASSED
|
||||
* Enhanced X509_NAME_print_ex() to support RFC5523 basic escape
|
||||
* More checks on OPENSSL_VERSION_NUMBER for API prototype differences
|
||||
* Add extended key usage support to wolfSSL_X509_set_ext
|
||||
* SSL_VERIFY_FAIL_IF_NO_PEER_CERT now can also connect with compatibility layer enabled and a TLS 1.3 PSK connection is used
|
||||
* Improve wolfSSL_BN_rand to handle non byte boundaries and top/bottom parameters
|
||||
* Changed X509_V_ERR codes to better match OpenSSL values used
|
||||
* Improve wolfSSL_i2d_X509_name to allow for a NULL input in order to get the expected resulting size
|
||||
* Enhance the smallstack build to reduce stack size farther when built with compatibility layer enabled
|
||||
|
||||
* Update for the version of VxWorks supported, adding in support for version 6.x
|
||||
* Support for new DPP and EAP-TEAP/EAP-FAST in wpa_supplicant
|
||||
* Update for TSIP version support, adding support for version 1.15 for RX65N and RX72N
|
||||
* Improved TSIP build to handle having the options WOLFSSL_AEAD_ONLY defined or NO_AES_CBC defined
|
||||
* Added support for offloading TLS1.3 operations to Renesas RX boards with TSIP
|
||||
### Misc.
|
||||
* Sniffer asynchronous support addition, handling of DH shared secret and tested with Intel QuickAssist
|
||||
* Added in support for OCSP with IPv6
|
||||
* Enhance SP (single precision) optimizations for use with the ECC P521
|
||||
* Add new public API wc_CheckCertSigPubKey() for use to easily check the signature of a certificate given a public key buffer
|
||||
* Add CSR (Certificate Signing Request) userId support in subject name
|
||||
* Injection and parsing of custom extensions in X.509 certificates
|
||||
* Add WOLF_CRYPTO_CB_ONLY_RSA and WOLF_CRYPTO_CB_ONLY_ECC to reduce code size if using only crypto callback functions with RSA and ECC
|
||||
* Created new --enable-engine configure flag used to build wolfSSL for use with wolfEngine
|
||||
* With TLS 1.3 PSK, when WOLFSSL_PSK_MULTI_ID_PER_CS is defined multiple IDs for a cipher suite can be handled
|
||||
* Added private key id/label support with improving the PK (Public Key) callbacks
|
||||
* Support for Intel QuickAssist ECC KeyGen acceleration
|
||||
* Add the function wolfSSL_CTX_SetCertCbCtx to set user context for certificate call back
|
||||
* Add the functions wolfSSL_CTX_SetEccSignCtx(WOLFSSL_CTX* ctx, void *userCtx) and wolfSSL_CTX_GetEccSignCtx(WOLFSSL_CTX* ctx) for setting and getting a user context
|
||||
* wolfRand for AMD --enable-amdrand
|
||||
* Constant time improvements due to development of new constant time tests
|
||||
* Initial translation of API headers to Japanese and expansion of Japanese help message support in example applications
|
||||
* Add support for some FPKI (Federal PKI) certificate cases, UUID, FASC-N, PIV extension for use with smart cards
|
||||
* Add support for parsing additional CSR attributes such as unstructured name and content type
|
||||
* Add support for Linux getrandom() when defining the macro WOLFSSL_GETRANDOM
|
||||
* Add TLS 1.2 ciphersuite ECDHE_PSK_WITH_AES_128_GCM_SHA256 from RFC 8442
|
||||
* Expand CAAM support with QNX to include i.MX8 boards and add AES-CTR support
|
||||
* Enhanced glitching protection by hardening the TLS encrypt operations
|
||||
|
||||
## Fixes
|
||||
### PORT Fixes
|
||||
* KCAPI memory optimizations and page alignment fixes for ECC, AES mode fixes and reduction to memory usage
|
||||
* Add the new kdf.c file to the TI-RTOS build
|
||||
* Fix wait-until-done in RSA hardware primitive acceleration of ESP-IDF port
|
||||
* IOTSafe workarounds when reading files with ending 0’s and for ECC signatures
|
||||
## Math and Performance
|
||||
|
||||
### Math Library Fixes
|
||||
* Sanity check with SP math that ECC points ordinates are not greater than modulus length
|
||||
* Additional sanity checks that _sp_add_d does not error due to overflow
|
||||
* Wycheproof fixes, testing integration, and fixes for AVX / AArch64 ASM edge case tests
|
||||
* TFM fp_div_2_ct rework to avoid potential overflow
|
||||
### SP Math Additions
|
||||
* Support for ARMv3, ARMv6 and ARMv7a
|
||||
- Changes and improvements to get SP building for armv7-a
|
||||
- Updated assembly for moving large immediate values on ARMv6
|
||||
- Support for architectures with no ldrd/strd and clz
|
||||
* Reworked generation using common asm ruby code for 32bit ARM
|
||||
* Enable wolfSSL SP math all by default (sp_int.c)
|
||||
* Update SP math all to not use sp_int_word when SQR_MUL_ASM is available
|
||||
### SP Math Fixes
|
||||
* Fixes for constant time with div function
|
||||
* Fix casting warnings for Windows builds and assembly changes to support XMM6-15 being non-volatile
|
||||
* Fix for div_word when not using div function
|
||||
* Fixes for user settings with SP ASM and ED/Curve25519 small
|
||||
* Additional Wycheproof tests ran and fixes
|
||||
* Fix for SP math ECC non-blocking to always check `hashLen`
|
||||
* Fix for SP math handling edge case with submod
|
||||
|
||||
### Misc.
|
||||
* Fix for PKCS#7 with Crypto Callbacks
|
||||
* Fix for larger curve sizes with deterministic ECC sign
|
||||
* Fixes for building wolfSSL alongside openssl using --enable-opensslcoexist
|
||||
* Fix for compatibility layer handling of certificates with SHA256 SKID (Subject Key ID)
|
||||
* Fix for wolfSSL_ASN1_TIME_diff erroring out on a return value of 0 from mktime
|
||||
* Remove extra padding when AES-CBC encrypted with PemToDer
|
||||
* Fixes for TLS v1.3 early data with async.
|
||||
* Fixes for async disables around the DevCopy calls
|
||||
* Fixes for Windows AES-NI with clang compiler
|
||||
* Fix for handling the detection of processing a plaintext TLS alert packet
|
||||
* Fix for potential memory leak in an error case with TLSX supported groups
|
||||
* Sanity check on `input` size in `DecodeNsCertType`
|
||||
* AES-GCM stack alignment fixes with assembly code written for AVX/AVX2
|
||||
* Fix for PK callbacks with server side and setting a public key
|
||||
## Improvements and Optimizations
|
||||
|
||||
## Improvements/Optimizations
|
||||
### Build Options and Warnings
|
||||
* Added example user settings template for FIPS v5 ready
|
||||
* Automake file touch cleanup for use with Yocto devtool
|
||||
* Allow disabling forced 'make clean' at the end of ./configure by using --disable-makeclean
|
||||
* Enable TLS 1.3 early data when specifying `--enable-all` option
|
||||
* Disable PK Callbacks with JNI FIPS builds
|
||||
* Add a FIPS cert 3389 ready option, this is the fips-ready build
|
||||
* Support (no)inline with Wind River Diab compiler
|
||||
* ECDH_compute_key allow setting of globalRNG with FIPS 140-3
|
||||
* Add logic equivalent to configure.ac in settings.h for Poly1305
|
||||
* Fixes to support building opensslextra with SP math
|
||||
* CPP protection for extern references to x86_64 asm code
|
||||
* Updates and enhancements for Espressif ESP-IDF wolfSSL setup_win.bat
|
||||
* Documentation improvements with auto generation
|
||||
* Fix reproducible-build for working an updated version of libtool, version 2.4.7
|
||||
* Fixes for Diab C89 and armclang
|
||||
* Fix `mcapi_test.c` to include the settings.h before crypto.h
|
||||
* Update and handle builds with NO_WOLFSSL_SERVER and NO_WOLFSSL_CLIENT
|
||||
* Fix for some macro defines with FIPS 140-3 build so that RSA_PKCS1_PSS_PADDING can be used with RSA sign/verify functions
|
||||
### Compatibility Layer
|
||||
* Provide access to "Finished" messages outside of compatibility layer builds
|
||||
* Remove unneeded FIPS guard on wolfSSL_EVP_PKEY_derive
|
||||
* Fix control command issues with AES-GCM, control command EVP_CTRL_GCM_IV_GEN
|
||||
* Add support for importing private only EC key to a WOLFSSL_EVP_PKEY struct
|
||||
* Add support for more extensions to wolfSSL_X509_print_ex
|
||||
* Update for internal to DER (i2d) AIPs to move the buffer pointer when passed in and the operation is successful
|
||||
* Return subject and issuer X509_NAME object even when not set
|
||||
### Ports
|
||||
* Renesas RA6M4 example update and fixes
|
||||
* Support multi-threaded use cases with Renesas SCE protected mode and TSIP
|
||||
* Add a global variable for heap-hint for use with TSIP
|
||||
* Changes to support v5.3.0 cube pack for STM32
|
||||
* Use the correct mutex type for embOS
|
||||
* ESP-IDF build cleanup and enhancements, adding in note regarding ESP-IDF Version
|
||||
* Support for SEGGER embOS and emNET
|
||||
* Fix to handle WOLFSSL_DTLS macro in Micrium build
|
||||
### Build Options
|
||||
* Support for verify only and no-PSS builds updated
|
||||
* Add the enable options wolfssh (mapped to the existing –enable-ssh)
|
||||
* Remove WOLFSSL_ALT_NAMES restriction on notBefore/notAfter use in Cert struct
|
||||
* Move several more definitions outside the BUILDING_WOLFSSL gate with linux kernel module build
|
||||
* Modify --enable-openssh to not enable non-FIPS algos for FIPS builds
|
||||
* Remove the Python wrappers from wolfSSL source (use pip install instead of using wolfSSL with Python and our separate Python repository)
|
||||
* Add --enable-openldap option to configure.ac for building the OpenLDAP port
|
||||
* Resolve DTLS build to handle not having –enable-hrrcookie when not needed
|
||||
* Add an --enable-strongswan option to configure.ac for building the Strongswan port
|
||||
* Improve defaults for 64-bit BSDs in configure
|
||||
* Crypto only build can now be used openssl extra
|
||||
* Update ASN template build to properly handle WOLFSSL_CERT_EXT and HAVE_OID_ENCODING
|
||||
* Allow using 3DES and MD5 with FIPS 140-3, as they fall outside of the FIPS boundary
|
||||
* Add the build option --enable-dh=const which replaces setting the macro WOLFSSL_DH_CONST and now conditionally link to -lm as needed
|
||||
* Add the macro WOLFSSL_HOSTNAME_VERIFY_ALT_NAME_ONLY which is used to verify hostname/ip address using alternate name (SAN) only and does not use the common name
|
||||
* WOLFSSL_DTLS_NO_HVR_ON_RESUME macro added (off by default to favor more security). If defined, a DTLS server will not do a cookie exchange on successful client resumption: the resumption will be faster (one RTT less) and will consume less bandwidth (one ClientHello and one HelloVerifyRequest less). On the other hand, if a valid SessionID is collected, forged clientHello messages will consume resources on the server.
|
||||
* Misc.
|
||||
* Refactoring of some internal TLS functions to reduce the memory usage
|
||||
* Make old less secure TimingPadVerify implementation available
|
||||
* Add support for aligned data with clang LLVM
|
||||
* Remove subject/issuer email from the list of alt. Email names in the DecodedCerts struct
|
||||
* Zeroizing of pre-master secret buffer in TLS 1.3
|
||||
* Update to allow TLS 1.3 application server to send session ticket
|
||||
* Improve the sniffer asynchronous test case to support multiple concurrent streams
|
||||
* Clean up wolfSSL_clear() and add more logging
|
||||
* Update to not error out on bad CRL next date if using NO_VERIFY when parsing
|
||||
* Add an example C# PSK client
|
||||
* Add ESP-IDF WOLFSSL_ESP8266 setting for ESP8266 devices
|
||||
* Support longer sigalg list for post quantum use cases and inter-op with OQS's OpenSSL fork
|
||||
* Improve AES-GCM word implementation of GMULT to be constant time
|
||||
* Additional sanity check with Ed25519/Ed448, now defaults to assume public key is not trusted
|
||||
* Support PSK ciphersuites in benchmark apps
|
||||
* FIPS in core hash using SHA2-256 and SHA2-384
|
||||
* Add ability to store issuer name components when parsing a certificate
|
||||
* Make the critical extension flags in DecodedCert always available
|
||||
* Updates to the default values for basic constraint with X509’s
|
||||
* Support using RSA OAEP with no malloc and add additional sanity checks
|
||||
* Leverage async code paths to support WANT_WRITE while sending packet fragments
|
||||
* New azsphere example for continuous integration testing
|
||||
* Update RSA key generation function to handle pairwise consistency tests with static memory pools used
|
||||
* Resolve build time warning by passing in and checking output length with internal SetCurve function
|
||||
* Support DTLS bidirectional shutdown in the examples
|
||||
* Improve DTLS version negotiation and downgrade capability
|
||||
|
||||
### Math Libraries
|
||||
* Add RSA/DH check for even modulus
|
||||
* Enhance TFM math to handle more alloc failure cases gracefully
|
||||
* SP ASM performance improvements mostly around AArch64
|
||||
* SP ASM improvements for additional cache attack resistance
|
||||
* Add RSA check for small difference between p and q
|
||||
* 6-8% performance increase with ECC operations using SP int by improving the Montgomery Reduction
|
||||
* Testing and Validation
|
||||
* All shell scripts in source tree now tested for correctness using shellcheck and bash -n
|
||||
* Added build testing under gcc-12 and -std=c++17 and fixed warnings
|
||||
* TLS 1.3 script test improvement to wait for server to write file
|
||||
* Unit tests for ECC r/s zeroness handling
|
||||
* CI server was expanded with a very “quiet” machine that can support multiple ContantTime tests ensuring ongoing mitigation against side-channel timing based attacks. Algorithms being assessed on this machine are: AES-CBC, AES-GCM, CHACHA20, ECC, POLY1305, RSA, SHA256, SHA512, CURVE25519.
|
||||
* Added new multi configuration windows builds to CI testing for greater testing coverage of windows use-cases
|
||||
|
||||
### Misc.
|
||||
* Support for ECC import to check validity of key on import even if one of the coordinates (x or y) is 0
|
||||
* Modify example app to work with FreeRTOS+IoT
|
||||
* Ease of access for cert used for verifying a PKCS#7 bundle
|
||||
* Clean up Visual Studio output and intermediate directories
|
||||
* With TLS 1.3 fail immediately if a server sends empty certificate message
|
||||
* Enhance the benchmark application to support multi-threaded testing
|
||||
* Improvement for `wc_EccPublicKeyToDer` to not overestimate the buffer size required
|
||||
* Fix to check if `wc_EccPublicKeyToDer` has enough output buffer space
|
||||
* Fix year 2038 problem in wolfSSL_ASN1_TIME_diff
|
||||
* Various portability improvements (Time, DTLS epoch size, IV alloc)
|
||||
* Prefer status_request_v2 over status_request when both are present
|
||||
* Add separate "struct stat" definition XSTATSTRUCT to make overriding XSTAT easier for portability
|
||||
* With SipHash replace gcc specific ASM instruction with generic
|
||||
* Don't force a ECC CA when a custom CA is passed with `-A`
|
||||
* Add peer authentication failsafe for TLS 1.2 and below
|
||||
* Improve parsing of UID from subject and issuer name with the compatibility layer by
|
||||
* Fallback to full TLS handshake if session ticket fails
|
||||
* Internal refactoring of code to reduce ssl.c file size
|
||||
### General Fixes
|
||||
* Fixes for STM32 Hash/PKA, add some missing mutex frees, and add an additional benchmark
|
||||
* Fix missing return checks in KSDK ED25519 code
|
||||
* Fix compilation warnings from IAR
|
||||
* Fixes for STM32U5/H7 hash/crypto support
|
||||
* Fix for using track memory feature with FreeRTOS
|
||||
* Fixup XSTR processing for MICRIUM
|
||||
* Update Zephyr fs.h path
|
||||
* DTLS fixes with WANT_WRITE simulations
|
||||
* Fixes for BER use with PKCS7 to have additional sanity checks and guards on edge cases
|
||||
* Fix to handle exceptional edge case with TFM mp_exptmod_ex
|
||||
* Fix for stack and heap measurements of a 32-bit build
|
||||
* Fix to allow enabling AES key wrap (direct) with KCAPI
|
||||
* Fix --enable-openssh FIPS detection syntax in configure.ac
|
||||
* Fix to move wolfSSL_ERR_clear_error outside gate for OPENSSL_EXTRA
|
||||
* Remove MCAPI project's dependency on zlib version
|
||||
* Only use __builtin_offset on supported GCC versions (4+)
|
||||
* Fix for c89 builds with using WOLF_C89
|
||||
* Fix 64bit postfix for constants building with powerpc
|
||||
* Fixed async Sniffer with TLS v1.3, async removal of `WC_HW_WAIT_E` and sanitize leak
|
||||
* Fix for QAT ECC to gate use of HW based on marker
|
||||
* Fix the supported version extension to always check minDowngrade
|
||||
* Fix for TLS v1.1 length sanity check for large messages
|
||||
* Fixes for loading a long DER/ASN.1 certificate chain
|
||||
* Fix to expose the RSA public DER export functions with certgen
|
||||
* Fixes for building with small version of SHA3
|
||||
* Fix configure with WOLFSSL_WPAS_SMALL
|
||||
* Fix to free PKCS7 recipient list in error cases
|
||||
* Sanity check to confirm ssl->hsHashes is not NULL before attempting to dereference it
|
||||
* Clear the leftover byte count in Aes struct when setting IV
|
||||
|
||||
For additional vulnerability information visit the vulnerability page at:
|
||||
https://www.wolfssl.com/docs/security-vulnerabilities/
|
||||
|
||||
BIN
certs/fpki-cert.der
Normal file
BIN
certs/fpki-cert.der
Normal file
Binary file not shown.
@@ -63,7 +63,8 @@ EXTRA_DIST += \
|
||||
certs/csr.ext.der \
|
||||
certs/entity-no-ca-bool-cert.pem \
|
||||
certs/entity-no-ca-bool-key.pem \
|
||||
certs/x942dh2048.pem
|
||||
certs/x942dh2048.pem \
|
||||
certs/fpki-cert.der
|
||||
|
||||
EXTRA_DIST += \
|
||||
certs/ca-key.der \
|
||||
|
||||
@@ -189,11 +189,11 @@ create_cert() {
|
||||
mv ./certs/intermediate/tmp.pem ./certs/intermediate/$4.pem
|
||||
}
|
||||
|
||||
if [ "$1" == "clean" ]; then
|
||||
if [ "$1" = "clean" ]; then
|
||||
echo "Cleaning temp files"
|
||||
cleanup_files
|
||||
fi
|
||||
if [ "$1" == "cleanall" ]; then
|
||||
if [ "$1" = "cleanall" ]; then
|
||||
echo "Cleaning all files"
|
||||
rm -f ./certs/intermediate/*.pem
|
||||
rm -f ./certs/intermediate/*.der
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
# client-relative-uri.pem
|
||||
# client-crl-dist.pem
|
||||
# entity-no-ca-bool-cert.pem
|
||||
# fpki-cert.der
|
||||
# updates the following crls:
|
||||
# crl/cliCrl.pem
|
||||
# crl/crl.pem
|
||||
@@ -344,6 +345,20 @@ run_renewcerts(){
|
||||
echo "End of section"
|
||||
echo "---------------------------------------------------------------------"
|
||||
###########################################################
|
||||
########## update and sign fpki-cert.der ################
|
||||
###########################################################
|
||||
echo "Updating fpki-cert.der"
|
||||
echo ""
|
||||
#pipe the following arguments to openssl req...
|
||||
echo -e "US\\nMontana\\nBozeman\\nwolfSSL\\nFPKI\\nwww.wolfssl.com\\ninfo@wolfssl.com\\n.\\n.\\n" | openssl req -new -key server-key.pem -config ./wolfssl.cnf -nodes > fpki-req.pem
|
||||
check_result $? "Step 1"
|
||||
|
||||
openssl x509 -req -in fpki-req.pem -extfile wolfssl.cnf -extensions fpki_ext -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out fpki-cert.der -outform DER
|
||||
check_result $? "Step 2"
|
||||
rm fpki-req.pem
|
||||
echo "End of section"
|
||||
echo "---------------------------------------------------------------------"
|
||||
###########################################################
|
||||
########## update and sign server-cert.pem ################
|
||||
###########################################################
|
||||
echo "Updating server-cert.pem"
|
||||
|
||||
@@ -335,3 +335,40 @@ clock_precision_digits = 0 # (optional)
|
||||
ordering = yes # timestamps?
|
||||
tsa_name = yes # include?
|
||||
ess_cert_id_chain = no # include chain?
|
||||
|
||||
|
||||
[fpki_ext]
|
||||
basicConstraints = CA:FALSE,pathlen:0
|
||||
subjectKeyIdentifier = hash
|
||||
authorityKeyIdentifier = keyid
|
||||
keyUsage = critical, digitalSignature
|
||||
extendedKeyUsage = critical, clientAuth, 1.3.6.1.4.1.311.20.2.2, 1.3.6.1.5.2.3.4, 1.3.6.1.5.5.7.3.21
|
||||
subjectAltName = @FASC_UUID_altname
|
||||
certificatePolicies = 2.16.840.1.101.3.2.1.3.13, 2.16.840.1.101.3.2.1.3.40, 2.16.840.1.101.3.2.1.3.41, 2.16.840.1.101.3.2.1.3.45
|
||||
subjectDirectoryAttributes = ASN1:SEQUENCE:SubjDirAttr
|
||||
policyConstraints = requireExplicitPolicy:0
|
||||
2.16.840.1.101.3.6.10.1 = ASN1:SEQUENCE:PIVCertExt
|
||||
|
||||
# using example UUID from RFC4122
|
||||
[FASC_UUID_altname]
|
||||
otherName.1 = 1.3.6.1.4.1.311.20.2.3;UTF8:facts@wolfssl.com
|
||||
otherName.2 = 2.16.840.1.101.3.6.6;FORMAT:HEX,OCT:D1:38:10:D8:28:AF:2C:10:84:35:15:A1:68:58:28:AF:02:10:86:A2:84:E7:39:C3:EB
|
||||
URI = urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
|
||||
|
||||
[SubjDirAttr]
|
||||
attribute = SEQUENCE:SDA_attr
|
||||
|
||||
[SDA_attr]
|
||||
type = OID:1.3.6.1.5.5.7.9.4
|
||||
values = SET:SDA_coc
|
||||
|
||||
[SDA_coc]
|
||||
value = PRINTABLESTRING:US
|
||||
|
||||
[PIVCertExt]
|
||||
attribute = SEQUENCE:PCE_attr
|
||||
|
||||
[PCE_attr]
|
||||
type = OID:2.16.840.1.101.3.6.9.1
|
||||
value = BOOLEAN:true
|
||||
|
||||
|
||||
@@ -41,6 +41,9 @@ function(generate_build_flags)
|
||||
if(WOLFSSL_TLS13 OR WOLFSSL_USER_SETTINGS)
|
||||
set(BUILD_TLS13 "yes" PARENT_SCOPE)
|
||||
endif()
|
||||
if(WOLFSSL_DTLS13 OR WOLFSSL_USER_SETTINGS)
|
||||
set(BUILD_DTLS13 "yes" PARENT_SCOPE)
|
||||
endif()
|
||||
if(WOLFSSL_RNG OR WOLFSSL_USER_SETTINGS)
|
||||
set(BUILD_RNG "yes" PARENT_SCOPE)
|
||||
endif()
|
||||
@@ -263,7 +266,7 @@ function(generate_build_flags)
|
||||
if(WOLFSSL_SP_X86_64_ASM OR WOLFSSL_USER_SETTINGS)
|
||||
set(BUILD_SP_X86_64 "yes" PARENT_SCOPE)
|
||||
endif()
|
||||
if(WOLFSSL_SP_MATH OR WOLFSSL_USER_SETTINGS)
|
||||
if(WOLFSSL_SP_MATH OR WOLFSSL_SP_MATH_ALL OR WOLFSSL_USER_SETTINGS)
|
||||
set(BUILD_SP_INT "yes" PARENT_SCOPE)
|
||||
endif()
|
||||
set(BUILD_FAST_RSA ${WOLFSSL_FAST_RSA} PARENT_SCOPE)
|
||||
@@ -538,14 +541,13 @@ function(generate_lib_src_list LIB_SOURCES)
|
||||
list(APPEND LIB_SOURCES wolfcrypt/src/sp_arm64.c)
|
||||
endif()
|
||||
|
||||
if(BUILD_SP_INT)
|
||||
list(APPEND LIB_SOURCES wolfcrypt/src/sp_int.c)
|
||||
endif()
|
||||
|
||||
if(BUILD_SP_ARM_CORTEX)
|
||||
list(APPEND LIB_SOURCES wolfcrypt/src/sp_cortexm.c)
|
||||
endif()
|
||||
endif()
|
||||
if(BUILD_SP_INT)
|
||||
list(APPEND LIB_SOURCES wolfcrypt/src/sp_int.c)
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_FIPS_V2)
|
||||
if(BUILD_AES)
|
||||
@@ -812,6 +814,10 @@ function(generate_lib_src_list LIB_SOURCES)
|
||||
list(APPEND LIB_SOURCES src/tls13.c)
|
||||
endif()
|
||||
|
||||
if(BUILD_DTLS13)
|
||||
list(APPEND LIB_SOURCES src/dtls13.c)
|
||||
endif()
|
||||
|
||||
if(BUILD_OCSP)
|
||||
list(APPEND LIB_SOURCES src/ocsp.c)
|
||||
endif()
|
||||
|
||||
709
configure.ac
709
configure.ac
File diff suppressed because it is too large
Load Diff
@@ -700,7 +700,9 @@
|
||||
* wrapper around macros until they are changed in cyassl code
|
||||
* needs investigation in regards to macros in fips
|
||||
*/
|
||||
#define NO_WOLFSSL_ALLOC_ALIGN NO_CYASSL_ALLOC_ALIGN /* @TODO */
|
||||
#ifdef NO_CYASSL_ALLOC_ALIGN
|
||||
#define NO_WOLFSSL_ALLOC_ALIGN NO_CYASSL_ALLOC_ALIGN
|
||||
#endif
|
||||
|
||||
|
||||
/* examples/client/client.h */
|
||||
|
||||
752
doc/dox_comments/header_files-ja/aes.h
Normal file
752
doc/dox_comments/header_files-ja/aes.h
Normal file
@@ -0,0 +1,752 @@
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この関数は、キーを設定して初期化ベクトルを設定することでAES構造を初期化します。
|
||||
\return 0 キーと初期化ベクトルを正常に設定します。
|
||||
\return BAD_FUNC_ARG キーの長さが無効な場合は返されます。
|
||||
\param aes 変更するAES構造へのポインタ
|
||||
\param key 暗号化と復号化のための16,24、または32バイトの秘密鍵
|
||||
\param len 渡されたキーの長さ
|
||||
\param iv キーを初期化するために使用される初期化ベクトルへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Aes enc;
|
||||
int ret = 0;
|
||||
byte key[] = { some 16, 24 or 32 byte key };
|
||||
byte iv[] = { some 16 byte iv };
|
||||
if (ret = wc_AesSetKey(&enc, key, AES_BLOCK_SIZE, iv,
|
||||
AES_ENCRYPTION) != 0) {
|
||||
// failed to set aes key
|
||||
}
|
||||
\endcode
|
||||
\sa wc_AesSetKeyDirect
|
||||
\sa wc_AesSetIV
|
||||
*/
|
||||
int wc_AesSetKey(Aes* aes, const byte* key, word32 len,
|
||||
const byte* iv, int dir);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この関数は、特定のAESオブジェクトの初期化ベクトルを設定します。AESオブジェクトは、この関数を呼び出す前に初期化されるべきです。
|
||||
\return 0 初期化ベクトルを正常に設定します。
|
||||
\return BAD_FUNC_ARG AESポインタがNULLの場合に返されます。
|
||||
\param aes 初期化ベクトルを設定するAES構造へのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Aes enc;
|
||||
// set enc key
|
||||
byte iv[] = { some 16 byte iv };
|
||||
if (ret = wc_AesSetIV(&enc, iv) != 0) {
|
||||
// failed to set aes iv
|
||||
}
|
||||
\endcode
|
||||
\sa wc_AesSetKeyDirect
|
||||
\sa wc_AesSetKey
|
||||
*/
|
||||
int wc_AesSetIV(Aes* aes, const byte* iv);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief 入力バッファーから平文メッセージを暗号化し、AESでCipher Block Chainingを使用して出力バッファに出力バッファーに入れます。この機能は、メッセージが暗号化される前にAESSetKeyを呼び出すことによってAESオブジェクトが初期化されていることを必要とします。この関数は、入力メッセージがAESブロック長であると仮定し、入力された長さがブロック長の倍数になることを想定しているため、ビルド構成でWolfSSL_AES_CBC_LENGTH_CHECKSが定義されている場合は任意選択でチェックおよび適用されます。ブロック多入力を保証するために、PKCS#7スタイルのパディングを事前に追加する必要があります。これはあなたのためにパディングを追加するOpenSSL AES-CBCメソッドとは異なります。WOLFSSLと対応するOpenSSL関数を相互運用するには、OpenSSLコマンドライン関数で-nopadオプションを指定して、WolfSSL AESCCENCRYPTメソッドのように動作し、暗号化中に追加のパディングを追加しません。
|
||||
\return 0 メッセージの暗号化に成功しました。
|
||||
\return BAD_ALIGN_E: ブロック整列誤差で返される可能性があります
|
||||
\return BAD_LENGTH_E 入力長がAESブロック長の倍数でない場合は、ライブラリーがwolfssl_aes_cbc_length_checksで構築されている場合に返されます。
|
||||
\param aes データの暗号化に使用されるAESオブジェクトへのポインタ
|
||||
\param out 暗号化されたメッセージの暗号文を格納する出力バッファへのポインタ
|
||||
\param in 暗号化されるメッセージを含む入力バッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Aes enc;
|
||||
int ret = 0;
|
||||
// initialize enc with AesSetKey, using direction AES_ENCRYPTION
|
||||
byte msg[AES_BLOCK_SIZE * n]; // multiple of 16 bytes
|
||||
// fill msg with data
|
||||
byte cipher[AES_BLOCK_SIZE * n]; // Some multiple of 16 bytes
|
||||
if ((ret = wc_AesCbcEncrypt(&enc, cipher, message, sizeof(msg))) != 0 ) {
|
||||
// block align error
|
||||
}
|
||||
\endcode
|
||||
\sa wc_AesSetKey
|
||||
\sa wc_AesSetIV
|
||||
\sa wc_AesCbcDecrypt
|
||||
*/
|
||||
int wc_AesCbcEncrypt(Aes* aes, byte* out,
|
||||
const byte* in, word32 sz);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief 入力バッファーから暗号を復号化し、AESでCipher Block Chainingを使用して出力バッファに出力バッファーに入れます。この機能は、メッセージが復号化される前にAESSetKeyを呼び出すことによってAES構造が初期化されていることを必要とします。この関数は、元のメッセージがAESブロック長で整列していたと仮定し、入力された長さがブロック長の倍数になると予想しています。これはOpenSSL AES-CBCメソッドとは異なります。これは、PKCS#7パディングを自動的に追加するため、ブロックマルチ入力を必要としません。WolfSSL機能と同等のOpenSSL関数を相互運用するには、OpenSSLコマンドライン関数で-nopadオプションを指定し、wolfssl aescbceNcryptメソッドのように動作し、復号化中にエラーを発生させません。
|
||||
\return 0 メッセージを正常に復号化します。
|
||||
\return BAD_ALIGN_E ブロック整列エラーで返される可能性があります。
|
||||
\return BAD_LENGTH_E 入力長がAESブロック長の倍数でない場合は、ライブラリーがwolfssl_aes_cbc_length_checksで構築されている場合に返されます。
|
||||
\param aes データを復号化するために使用されるAESオブジェクトへのポインタ。
|
||||
\param out 復号化されたメッセージのプレーンテキストを保存する出力バッファへのポインタ。
|
||||
\param in 復号化する暗号テキストを含む入力バッファへのポインタ。
|
||||
_Example_
|
||||
\code
|
||||
Aes dec;
|
||||
int ret = 0;
|
||||
// initialize dec with AesSetKey, using direction AES_DECRYPTION
|
||||
byte cipher[AES_BLOCK_SIZE * n]; // some multiple of 16 bytes
|
||||
// fill cipher with cipher text
|
||||
byte plain [AES_BLOCK_SIZE * n];
|
||||
if ((ret = wc_AesCbcDecrypt(&dec, plain, cipher, sizeof(cipher))) != 0 ) {
|
||||
// block align error
|
||||
}
|
||||
\endcode
|
||||
\sa wc_AesSetKey
|
||||
\sa wc_AesCbcEncrypt
|
||||
*/
|
||||
int wc_AesCbcDecrypt(Aes* aes, byte* out,
|
||||
const byte* in, word32 sz);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief 入力バッファーからメッセージを暗号化/復号化し、AESを使用してCTRモードを使用して出力バッファーに出力バッファーに入れます。この関数は、wolfssl_aes_counterがコンパイル時に有効になっている場合にのみ有効になります。この機能を呼び出す前に、AES構造体をAessetKeyで初期化する必要があります。この関数は復号化と暗号化の両方に使用されます。_注:暗号化と復号化のための同じAPIを使用することについて。ユーザーは暗号化/復号化のためのAES構造体を区別する必要があります。
|
||||
\return int WolfSSLエラーまたは成功状況に対応する整数値
|
||||
\param aes データを復号化するために使用されるAESオブジェクトへのポインタ
|
||||
\param out 暗号化されたメッセージの暗号化テキストを保存する出力バッファへのポインタ
|
||||
\param in 暗号化されるプレーンテキストを含む入力バッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Aes enc;
|
||||
Aes dec;
|
||||
// initialize enc and dec with AesSetKeyDirect, using direction
|
||||
AES_ENCRYPTION
|
||||
// since the underlying API only calls Encrypt and by default calling
|
||||
encrypt on
|
||||
// a cipher results in a decryption of the cipher
|
||||
|
||||
byte msg[AES_BLOCK_SIZE * n]; //n being a positive integer making msg
|
||||
some multiple of 16 bytes
|
||||
// fill plain with message text
|
||||
byte cipher[AES_BLOCK_SIZE * n];
|
||||
byte decrypted[AES_BLOCK_SIZE * n];
|
||||
wc_AesCtrEncrypt(&enc, cipher, msg, sizeof(msg)); // encrypt plain
|
||||
wc_AesCtrEncrypt(&dec, decrypted, cipher, sizeof(cipher));
|
||||
// decrypt cipher text
|
||||
\endcode
|
||||
\sa wc_AesSetKey
|
||||
*/
|
||||
int wc_AesCtrEncrypt(Aes* aes, byte* out,
|
||||
const byte* in, word32 sz);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この関数は、入力ブロックの入力ブロック、IN、OUTPUTブロック、OUTです。提供されたAES構造体のキーを使用します。これはこの機能を呼び出す前にWC_AESSETKEYで初期化される必要があります。WC_AESSETKEYは、IVセットがNULLに呼び出されたはずです。これは、Configure Option WolfSSL_AES_DIRECTが有効になっている場合にのみ有効になります。__ warning:ほぼすべてのユースケースでECBモードは安全性が低いと考えられています。可能な限りECB APIを直接使用しないでください。
|
||||
\return int WolfSSLエラーまたは成功状況に対応する整数値
|
||||
\param aes データの暗号化に使用されるAESオブジェクトへのポインタ
|
||||
\param out 暗号化されたメッセージの暗号化テキストを保存する出力バッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Aes enc;
|
||||
// initialize enc with AesSetKey, using direction AES_ENCRYPTION
|
||||
byte msg [AES_BLOCK_SIZE]; // 16 bytes
|
||||
// initialize msg with plain text to encrypt
|
||||
byte cipher[AES_BLOCK_SIZE];
|
||||
wc_AesEncryptDirect(&enc, cipher, msg);
|
||||
\endcode
|
||||
\sa wc_AesDecryptDirect
|
||||
\sa wc_AesSetKeyDirect
|
||||
*/
|
||||
int wc_AesEncryptDirect(Aes* aes, byte* out, const byte* in);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この関数は、入力ブロックの1ブロック復号化、IN、IN、OUTPUT OUTです。提供されたAES構造体のキーを使用します。これはこの機能を呼び出す前にWC_AESSETKEYで初期化される必要があります。WC_AESSETKEYは、IVセットがNULLに呼び出されたはずです。これは、Configure Option WolfSSL_AES_DIRECTが有効になっている場合にのみ有効になります。__ warning:ほぼすべてのユースケースでECBモードは安全性が低いと考えられています。可能な限りECB APIを直接使用しないでください。
|
||||
\return int WolfSSLエラーまたは成功状況に対応する整数値
|
||||
\param aes データの暗号化に使用されるAESオブジェクトへのポインタ
|
||||
\param out 復号化された暗号テキストのプレーンテキストを格納する出力バッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Aes dec;
|
||||
// initialize enc with AesSetKey, using direction AES_DECRYPTION
|
||||
byte cipher [AES_BLOCK_SIZE]; // 16 bytes
|
||||
// initialize cipher with cipher text to decrypt
|
||||
byte msg[AES_BLOCK_SIZE];
|
||||
wc_AesDecryptDirect(&dec, msg, cipher);
|
||||
\endcode
|
||||
\sa wc_AesEncryptDirect
|
||||
\sa wc_AesSetKeyDirect
|
||||
*/
|
||||
int wc_AesDecryptDirect(Aes* aes, byte* out, const byte* in);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この関数は、CTRモードのAESキーをAESで設定するために使用されます。指定されたキー、IV(初期化ベクトル)、および暗号化DIR(方向)でAESオブジェクトを初期化します。構成オプションwolfssl_aes_directが有効になっている場合にのみ有効になります。現在WC_AessetKeyDirectは内部的にWC_AESSETKEYを使用します。__ warning:ほぼすべてのユースケースでECBモードは安全性が低いと考えられています。可能な限りECB APIを直接使用しないでください
|
||||
\return 0 キーの設定に成功しました。
|
||||
\return BAD_FUNC_ARG 与えられたキーが無効な長さの場合に返されます。
|
||||
\param aes データの暗号化に使用されるAESオブジェクトへのポインタ
|
||||
\param key 暗号化と復号化のための16,24、または32バイトの秘密鍵
|
||||
\param len 渡されたキーの長さ
|
||||
\param iv キーを初期化するために使用される初期化ベクトル
|
||||
_Example_
|
||||
\code
|
||||
Aes enc;
|
||||
int ret = 0;
|
||||
byte key[] = { some 16, 24, or 32 byte key };
|
||||
byte iv[] = { some 16 byte iv };
|
||||
if (ret = wc_AesSetKeyDirect(&enc, key, sizeof(key), iv,
|
||||
AES_ENCRYPTION) != 0) {
|
||||
// failed to set aes key
|
||||
}
|
||||
\endcode
|
||||
\sa wc_AesEncryptDirect
|
||||
\sa wc_AesDecryptDirect
|
||||
\sa wc_AesSetKey
|
||||
*/
|
||||
int wc_AesSetKeyDirect(Aes* aes, const byte* key, word32 len,
|
||||
const byte* iv, int dir);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この機能は、AES GCM(Galois / Counter Mode)のキーを設定するために使用されます。与えられたキーでAESオブジェクトを初期化します。コンパイル時にConfigureオプションhous_aesgcmが有効になっている場合にのみ有効になります。
|
||||
\return 0 キーの設定に成功しました。
|
||||
\return BAD_FUNC_ARG 与えられたキーが無効な長さの場合に返されます。
|
||||
\param aes データの暗号化に使用されるAESオブジェクトへのポインタ
|
||||
\param key 暗号化と復号化のための16,24、または32バイトの秘密鍵
|
||||
_Example_
|
||||
\code
|
||||
Aes enc;
|
||||
int ret = 0;
|
||||
byte key[] = { some 16, 24,32 byte key };
|
||||
if (ret = wc_AesGcmSetKey(&enc, key, sizeof(key)) != 0) {
|
||||
// failed to set aes key
|
||||
}
|
||||
\endcode
|
||||
\sa wc_AesGcmEncrypt
|
||||
\sa wc_AesGcmDecrypt
|
||||
*/
|
||||
int wc_AesGcmSetKey(Aes* aes, const byte* key, word32 len);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この関数は、入力メッセージをバッファINに保持し、結果の暗号テキストを出力バッファOUTに格納します。暗号化する呼び出しごとに新しいIV(初期化ベクトル)が必要です。また、入力認証ベクトル、Authin、AuthTagへの入力認証ベクトルをエンコードします。
|
||||
\return 0 入力メッセージの暗号化に成功しました
|
||||
\param aes - データの暗号化に使用されるAESオブジェクトへのポインタ
|
||||
\param out 暗号テキストを保存する出力バッファへのポインタ
|
||||
\param in 暗号化するメッセージを保持している入力バッファへのポインタ
|
||||
\param sz 暗号化する入力メッセージの長さ
|
||||
\param iv 初期化ベクトルを含むバッファへのポインタ
|
||||
\param ivSz 初期化ベクトルの長さ
|
||||
\param authTag 認証タグを保存するバッファへのポインタ
|
||||
\param authTagSz 希望の認証タグの長さ
|
||||
\param authIn 入力認証ベクトルを含むバッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Aes enc;
|
||||
// initialize aes structure by calling wc_AesGcmSetKey
|
||||
|
||||
byte plain[AES_BLOCK_LENGTH * n]; //n being a positive integer
|
||||
making plain some multiple of 16 bytes
|
||||
// initialize plain with msg to encrypt
|
||||
byte cipher[sizeof(plain)];
|
||||
byte iv[] = // some 16 byte iv
|
||||
byte authTag[AUTH_TAG_LENGTH];
|
||||
byte authIn[] = // Authentication Vector
|
||||
|
||||
wc_AesGcmEncrypt(&enc, cipher, plain, sizeof(cipher), iv, sizeof(iv),
|
||||
authTag, sizeof(authTag), authIn, sizeof(authIn));
|
||||
\endcode
|
||||
\sa wc_AesGcmSetKey
|
||||
\sa wc_AesGcmDecrypt
|
||||
*/
|
||||
int wc_AesGcmEncrypt(Aes* aes, byte* out,
|
||||
const byte* in, word32 sz,
|
||||
const byte* iv, word32 ivSz,
|
||||
byte* authTag, word32 authTagSz,
|
||||
const byte* authIn, word32 authInSz);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この関数は、入力暗号テキストをバッファINに保持し、結果のメッセージテキストを出力バッファOUTに格納します。また、指定された認証タグ、authtagに対して、入力認証ベクトル、Authinをチェックします。
|
||||
\return 0 入力メッセージの復号化に成功しました
|
||||
\return AES_GCM_AUTH_E 認証タグが提供された認証コードベクトルと一致しない場合、authtag。
|
||||
\param aes データの暗号化に使用されるAESオブジェクトへのポインタ
|
||||
\param out メッセージテキストを保存する出力バッファへのポインタ
|
||||
\param in 暗号テキストを復号化する入力バッファへのポインタ
|
||||
\param sz 復号化する暗号テキストの長さ
|
||||
\param iv 初期化ベクトルを含むバッファへのポインタ
|
||||
\param ivSz 初期化ベクトルの長さ
|
||||
\param authTag 認証タグを含むバッファへのポインタ
|
||||
\param authTagSz 希望の認証タグの長さ
|
||||
\param authIn 入力認証ベクトルを含むバッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Aes enc; //can use the same struct as was passed to wc_AesGcmEncrypt
|
||||
// initialize aes structure by calling wc_AesGcmSetKey if not already done
|
||||
|
||||
byte cipher[AES_BLOCK_LENGTH * n]; //n being a positive integer
|
||||
making cipher some multiple of 16 bytes
|
||||
// initialize cipher with cipher text to decrypt
|
||||
byte output[sizeof(cipher)];
|
||||
byte iv[] = // some 16 byte iv
|
||||
byte authTag[AUTH_TAG_LENGTH];
|
||||
byte authIn[] = // Authentication Vector
|
||||
|
||||
wc_AesGcmDecrypt(&enc, output, cipher, sizeof(cipher), iv, sizeof(iv),
|
||||
authTag, sizeof(authTag), authIn, sizeof(authIn));
|
||||
\endcode
|
||||
\sa wc_AesGcmSetKey
|
||||
\sa wc_AesGcmEncrypt
|
||||
*/
|
||||
int wc_AesGcmDecrypt(Aes* aes, byte* out,
|
||||
const byte* in, word32 sz,
|
||||
const byte* iv, word32 ivSz,
|
||||
const byte* authTag, word32 authTagSz,
|
||||
const byte* authIn, word32 authInSz);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この関数は、GAROISメッセージ認証に使用されるGMACオブジェクトのキーを初期化して設定します。
|
||||
\return 0 キーの設定に成功しました
|
||||
\return BAD_FUNC_ARG キーの長さが無効な場合は返されます。
|
||||
\param gmac 認証に使用されるGMACオブジェクトへのポインタ
|
||||
\param key 認証のための16,24、または32バイトの秘密鍵
|
||||
_Example_
|
||||
\code
|
||||
Gmac gmac;
|
||||
key[] = { some 16, 24, or 32 byte length key };
|
||||
wc_GmacSetKey(&gmac, key, sizeof(key));
|
||||
\endcode
|
||||
\sa wc_GmacUpdate
|
||||
*/
|
||||
int wc_GmacSetKey(Gmac* gmac, const byte* key, word32 len);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この関数はAuthin InputのGMACハッシュを生成し、結果をAuthtagバッファに格納します。wc_gmacupdateを実行した後、生成されたauthtagを既知の認証タグに比較してメッセージの信頼性を検証する必要があります。
|
||||
\return 0 GMACハッシュの計算に成功しました。
|
||||
\param gmac 認証に使用されるGMACオブジェクトへのポインタ
|
||||
\param iv ハッシュに使用される初期化ベクトル
|
||||
\param ivSz 使用される初期化ベクトルのサイズ
|
||||
\param authIn 確認する認証ベクトルを含むバッファへのポインタ
|
||||
\param authInSz 認証ベクトルのサイズ
|
||||
\param authTag GMACハッシュを保存する出力バッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Gmac gmac;
|
||||
key[] = { some 16, 24, or 32 byte length key };
|
||||
iv[] = { some 16 byte length iv };
|
||||
|
||||
wc_GmacSetKey(&gmac, key, sizeof(key));
|
||||
authIn[] = { some 16 byte authentication input };
|
||||
tag[AES_BLOCK_SIZE]; // will store authentication code
|
||||
|
||||
wc_GmacUpdate(&gmac, iv, sizeof(iv), authIn, sizeof(authIn), tag,
|
||||
sizeof(tag));
|
||||
\endcode
|
||||
\sa wc_GmacSetKey
|
||||
*/
|
||||
int wc_GmacUpdate(Gmac* gmac, const byte* iv, word32 ivSz,
|
||||
const byte* authIn, word32 authInSz,
|
||||
byte* authTag, word32 authTagSz);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この関数は、CCMを使用してAESオブジェクトのキーを設定します(CBC-MACのカウンタ)。AES構造体へのポインタを取り、付属のキーで初期化します。
|
||||
\return none
|
||||
\param aes 付属のキーを保管するためのAES構造
|
||||
\param key 暗号化と復号化のための16,24、または32バイトの秘密鍵
|
||||
_Example_
|
||||
\code
|
||||
Aes enc;
|
||||
key[] = { some 16, 24, or 32 byte length key };
|
||||
|
||||
wc_AesCcmSetKey(&aes, key, sizeof(key));
|
||||
\endcode
|
||||
\sa wc_AesCcmEncrypt
|
||||
\sa wc_AesCcmDecrypt
|
||||
*/
|
||||
int wc_AesCcmSetKey(Aes* aes, const byte* key, word32 keySz);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この関数は、CCMを使用して、入力メッセージ、IN、OUT、OUT、OUTをCCM(CBC-MACのカウンタ)を暗号化します。その後、Authin Inputから認証タグ、AuthtAgを計算して格納します。
|
||||
\return none
|
||||
\param aes データの暗号化に使用されるAESオブジェクトへのポインタ
|
||||
\param out 暗号テキストを保存する出力バッファへのポインタ
|
||||
\param in 暗号化するメッセージを保持している入力バッファへのポインタ
|
||||
\param sz 暗号化する入力メッセージの長さ
|
||||
\param nonce nonceを含むバッファへのポインタ(1回だけ使用されている数)
|
||||
\param nonceSz ノンスの長さ
|
||||
\param authTag 認証タグを保存するバッファへのポインタ
|
||||
\param authTagSz 希望の認証タグの長さ
|
||||
\param authIn 入力認証ベクトルを含むバッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Aes enc;
|
||||
// initialize enc with wc_AesCcmSetKey
|
||||
|
||||
nonce[] = { initialize nonce };
|
||||
plain[] = { some plain text message };
|
||||
cipher[sizeof(plain)];
|
||||
|
||||
authIn[] = { some 16 byte authentication input };
|
||||
tag[AES_BLOCK_SIZE]; // will store authentication code
|
||||
|
||||
wc_AesCcmEncrypt(&enc, cipher, plain, sizeof(plain), nonce, sizeof(nonce),
|
||||
tag, sizeof(tag), authIn, sizeof(authIn));
|
||||
\endcode
|
||||
\sa wc_AesCcmSetKey
|
||||
\sa wc_AesCcmDecrypt
|
||||
*/
|
||||
int wc_AesCcmEncrypt(Aes* aes, byte* out,
|
||||
const byte* in, word32 inSz,
|
||||
const byte* nonce, word32 nonceSz,
|
||||
byte* authTag, word32 authTagSz,
|
||||
const byte* authIn, word32 authInSz);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この関数は、CCMを使用して、入力暗号テキストを、CCM(CBC-MACのカウンタ)を使用して出力バッファーに復号化します。その後、Authin InputからAuthatAg、AuthatAgを計算します。許可タグが無効な場合は、出力バッファをゼロに設定し、AES_CCM_AUTH_Eを返します。
|
||||
\return 0 入力メッセージの復号化に成功しました
|
||||
\return AES_CCM_AUTH_E 認証タグが提供された認証コードベクトルと一致しない場合、authtag。
|
||||
\param aes データの暗号化に使用されるAESオブジェクトへのポインタ
|
||||
\param out 暗号テキストを保存する出力バッファへのポインタ
|
||||
\param in 暗号化するメッセージを保持している入力バッファへのポインタ
|
||||
\param sz 入力暗号テキストの復号化
|
||||
\param nonce nonceを含むバッファへのポインタ(1回だけ使用されている数)
|
||||
\param nonceSz ノンスの長さ
|
||||
\param authTag 認証タグを保存するバッファへのポインタ
|
||||
\param authTagSz 希望の認証タグの長さ
|
||||
\param authIn 入力認証ベクトルを含むバッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Aes dec;
|
||||
// initialize dec with wc_AesCcmSetKey
|
||||
|
||||
nonce[] = { initialize nonce };
|
||||
cipher[] = { encrypted message };
|
||||
plain[sizeof(cipher)];
|
||||
|
||||
authIn[] = { some 16 byte authentication input };
|
||||
tag[AES_BLOCK_SIZE] = { authentication tag received for verification };
|
||||
|
||||
int return = wc_AesCcmDecrypt(&dec, plain, cipher, sizeof(cipher),
|
||||
nonce, sizeof(nonce),tag, sizeof(tag), authIn, sizeof(authIn));
|
||||
if(return != 0) {
|
||||
// decrypt error, invalid authentication code
|
||||
}
|
||||
\endcode
|
||||
\sa wc_AesCcmSetKey
|
||||
\sa wc_AesCcmEncrypt
|
||||
*/
|
||||
int wc_AesCcmDecrypt(Aes* aes, byte* out,
|
||||
const byte* in, word32 inSz,
|
||||
const byte* nonce, word32 nonceSz,
|
||||
const byte* authTag, word32 authTagSz,
|
||||
const byte* authIn, word32 authInSz);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief これは、暗号化または復号化タイプを修正するためのキーの設定を支援することです。完了したら、AESキーでWC_AESXTSFREEを呼び出すことがユーザーになりました。
|
||||
\return 0 成功
|
||||
\param aes ENCRYPT /復号化プロセスのためのAESキー
|
||||
\param key AESキーを保持しているバッファー| ..Tweak Key
|
||||
\param len キーバッファのバイト数の長さ。キーサイズの2倍にする必要があります。すなわち、16バイトのキーについて。
|
||||
\param dir 方向、AES_EncryptionまたはAES_Decryptionのいずれか
|
||||
\param heap メモリに使用するヒントヒント。nullになることができます
|
||||
_Example_
|
||||
\code
|
||||
XtsAes aes;
|
||||
|
||||
if(wc_AesXtsSetKey(&aes, key, sizeof(key), AES_ENCRYPTION, NULL, 0) != 0)
|
||||
{
|
||||
// Handle error
|
||||
}
|
||||
wc_AesXtsFree(&aes);
|
||||
\endcode
|
||||
\sa wc_AesXtsEncrypt
|
||||
\sa wc_AesXtsDecrypt
|
||||
\sa wc_AesXtsFree
|
||||
*/
|
||||
int wc_AesXtsSetKey(XtsAes* aes, const byte* key,
|
||||
word32 len, int dir, void* heap, int devId);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief WC_AESXTSENCRYPTと同じプロセスですが、バイト配列の代わりにTweak値としてWord64型を使用します。これは、Word64をバイト配列に変換し、WC_AESXTSENCRYPTを呼び出します。
|
||||
\return 0 成功
|
||||
\param aes ブロック暗号化/復号化に使用するAESキー
|
||||
\param out 暗号テキストを保持するための出力バッファ
|
||||
\param in 暗号化する入力プレーンテキストバッファ
|
||||
\param sz 両方ともバッファのサイズ
|
||||
_Example_
|
||||
\code
|
||||
XtsAes aes;
|
||||
unsigned char plain[SIZE];
|
||||
unsigned char cipher[SIZE];
|
||||
word64 s = VALUE;
|
||||
|
||||
//set up keys with AES_ENCRYPTION as dir
|
||||
|
||||
if(wc_AesXtsEncryptSector(&aes, cipher, plain, SIZE, s) != 0)
|
||||
{
|
||||
// Handle error
|
||||
}
|
||||
wc_AesXtsFree(&aes);
|
||||
\endcode
|
||||
\sa wc_AesXtsEncrypt
|
||||
\sa wc_AesXtsDecrypt
|
||||
\sa wc_AesXtsSetKey
|
||||
\sa wc_AesXtsFree
|
||||
*/
|
||||
int wc_AesXtsEncryptSector(XtsAes* aes, byte* out,
|
||||
const byte* in, word32 sz, word64 sector);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief WC_AESXTSDECRYPTと同じプロセスではなく、BYTE配列の代わりにWord64タイプを使用します。これはWord64をバイト配列に変換するだけです。
|
||||
\return 0 成功
|
||||
\param aes ブロック暗号化/復号化に使用するAESキー
|
||||
\param out プレーンテキストを保持するための出力バッファ
|
||||
\param in 復号化する暗号テキストバッファーを入力します
|
||||
\param sz 両方ともバッファのサイズ
|
||||
_Example_
|
||||
\code
|
||||
XtsAes aes;
|
||||
unsigned char plain[SIZE];
|
||||
unsigned char cipher[SIZE];
|
||||
word64 s = VALUE;
|
||||
|
||||
//set up aes key with AES_DECRYPTION as dir and tweak with AES_ENCRYPTION
|
||||
|
||||
if(wc_AesXtsDecryptSector(&aes, plain, cipher, SIZE, s) != 0)
|
||||
{
|
||||
// Handle error
|
||||
}
|
||||
wc_AesXtsFree(&aes);
|
||||
\endcode
|
||||
\sa wc_AesXtsEncrypt
|
||||
\sa wc_AesXtsDecrypt
|
||||
\sa wc_AesXtsSetKey
|
||||
\sa wc_AesXtsFree
|
||||
*/
|
||||
int wc_AesXtsDecryptSector(XtsAes* aes, byte* out,
|
||||
const byte* in, word32 sz, word64 sector);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief XTSモードのあるAES。(XTS)XEX暗号化と暗号テキストを盗んだ暗号化。
|
||||
\return 0 成功
|
||||
\param aes ブロック暗号化/復号化に使用するAESキー
|
||||
\param out 暗号テキストを保持するための出力バッファ
|
||||
\param in 暗号化する入力プレーンテキストバッファ
|
||||
\param sz 両方ともバッファのサイズ
|
||||
\param i Tweakに使用する値
|
||||
_Example_
|
||||
\code
|
||||
XtsAes aes;
|
||||
unsigned char plain[SIZE];
|
||||
unsigned char cipher[SIZE];
|
||||
unsigned char i[AES_BLOCK_SIZE];
|
||||
|
||||
//set up key with AES_ENCRYPTION as dir
|
||||
|
||||
if(wc_AesXtsEncrypt(&aes, cipher, plain, SIZE, i, sizeof(i)) != 0)
|
||||
{
|
||||
// Handle error
|
||||
}
|
||||
wc_AesXtsFree(&aes);
|
||||
\endcode
|
||||
\sa wc_AesXtsDecrypt
|
||||
\sa wc_AesXtsSetKey
|
||||
\sa wc_AesXtsFree
|
||||
*/
|
||||
int wc_AesXtsEncrypt(XtsAes* aes, byte* out,
|
||||
const byte* in, word32 sz, const byte* i, word32 iSz);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief 暗号化と同じプロセスですが、AESキーはAES_Decryptionタイプです。
|
||||
\return 0 成功
|
||||
\param aes ブロック暗号化/復号化に使用するAESキー
|
||||
\param out プレーンテキストを保持するための出力バッファ
|
||||
\param in 復号化する暗号テキストバッファーを入力します
|
||||
\param sz 両方ともバッファのサイズ
|
||||
\param i Tweakに使用する値
|
||||
_Example_
|
||||
\code
|
||||
XtsAes aes;
|
||||
unsigned char plain[SIZE];
|
||||
unsigned char cipher[SIZE];
|
||||
unsigned char i[AES_BLOCK_SIZE];
|
||||
|
||||
//set up key with AES_DECRYPTION as dir and tweak with AES_ENCRYPTION
|
||||
|
||||
if(wc_AesXtsDecrypt(&aes, plain, cipher, SIZE, i, sizeof(i)) != 0)
|
||||
{
|
||||
// Handle error
|
||||
}
|
||||
wc_AesXtsFree(&aes);
|
||||
\endcode
|
||||
\sa wc_AesXtsEncrypt
|
||||
\sa wc_AesXtsSetKey
|
||||
\sa wc_AesXtsFree
|
||||
*/
|
||||
int wc_AesXtsDecrypt(XtsAes* aes, byte* out,
|
||||
const byte* in, word32 sz, const byte* i, word32 iSz);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief これはXTSAES構造によって使用されるすべてのリソースを解放することです
|
||||
\return 0 成功
|
||||
_Example_
|
||||
\code
|
||||
XtsAes aes;
|
||||
|
||||
if(wc_AesXtsSetKey(&aes, key, sizeof(key), AES_ENCRYPTION, NULL, 0) != 0)
|
||||
{
|
||||
// Handle error
|
||||
}
|
||||
wc_AesXtsFree(&aes);
|
||||
\endcode
|
||||
\sa wc_AesXtsEncrypt
|
||||
\sa wc_AesXtsDecrypt
|
||||
\sa wc_AesXtsSetKey
|
||||
*/
|
||||
int wc_AesXtsFree(XtsAes* aes);
|
||||
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief AES構造を初期化します。ASYNCハードウェアで使用するためのヒープヒントとIDを設定する
|
||||
\return 0 成功
|
||||
\param aes 初期化にはAES構造
|
||||
\param heap 必要に応じてmalloc / freeに使用するヒントヒント
|
||||
_Example_
|
||||
\code
|
||||
Aes enc;
|
||||
void* hint = NULL;
|
||||
int devId = INVALID_DEVID; //if not using async INVALID_DEVID is default
|
||||
|
||||
//heap hint could be set here if used
|
||||
|
||||
wc_AesInit(&aes, hint, devId);
|
||||
\endcode
|
||||
\sa wc_AesSetKey
|
||||
\sa wc_AesSetIV
|
||||
*/
|
||||
int wc_AesInit(Aes* aes, void* heap, int devId);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief CFBモードを持つAES。
|
||||
\return 0 失敗時の成功と否定的なエラー値
|
||||
\param aes ブロック暗号化/復号化に使用するAESキー
|
||||
\param out 暗号テキストを保持するための出力バッファは、少なくともInpectBufferと同じくらい大きい必要があります)
|
||||
\param in 暗号化する入力プレーンテキストバッファ
|
||||
_Example_
|
||||
\code
|
||||
Aes aes;
|
||||
unsigned char plain[SIZE];
|
||||
unsigned char cipher[SIZE];
|
||||
|
||||
//set up key with AES_ENCRYPTION as dir for both encrypt and decrypt
|
||||
|
||||
if(wc_AesCfbEncrypt(&aes, cipher, plain, SIZE) != 0)
|
||||
{
|
||||
// Handle error
|
||||
}
|
||||
\endcode
|
||||
\sa wc_AesCfbDecrypt
|
||||
\sa wc_AesSetKey
|
||||
*/
|
||||
int wc_AesCfbEncrypt(Aes* aes, byte* out, const byte* in, word32 sz);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief CFBモードを持つAES。
|
||||
\return 0 失敗時の成功と否定的なエラー値
|
||||
\param aes ブロック暗号化/復号化に使用するAESキー
|
||||
\param out 復号化されたテキストを保持するための出力バッファは、少なくともinputBufferと同じ大きさでなければなりません)
|
||||
\param in 復号化する入力バッファ
|
||||
_Example_
|
||||
\code
|
||||
Aes aes;
|
||||
unsigned char plain[SIZE];
|
||||
unsigned char cipher[SIZE];
|
||||
|
||||
//set up key with AES_ENCRYPTION as dir for both encrypt and decrypt
|
||||
|
||||
if(wc_AesCfbDecrypt(&aes, plain, cipher, SIZE) != 0)
|
||||
{
|
||||
// Handle error
|
||||
}
|
||||
\endcode
|
||||
\sa wc_AesCfbEncrypt
|
||||
\sa wc_AesSetKey
|
||||
*/
|
||||
int wc_AesCfbDecrypt(Aes* aes, byte* out, const byte* in, word32 sz);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この関数は、RFC 5297に記載されているようにSIV(合成初期化ベクトル)暗号化を実行します。
|
||||
\return 0 暗号化に成功した場合
|
||||
\return BAD_FUNC_ARG キー、SIV、または出力バッファがNULLの場合。キーサイズが32,48、または64バイトの場合にも返されます。
|
||||
\return Other AESまたはCMAC操作が失敗した場合に返されるその他の負のエラー値。
|
||||
\param key 使用する鍵を含むバイトバッファ。
|
||||
\param keySz キーバッファの長さ(バイト単位)。
|
||||
\param assoc 追加の認証された関連データ(AD)。
|
||||
\param assocSz ADバッファのバイト数
|
||||
\param nonce 一度使用される数。ADと同じ方法でアルゴリズムによって使用されます。
|
||||
\param nonceSz バイト単位のNOCEバッファの長さ。
|
||||
\param in 暗号化する平文のバッファ。
|
||||
\param inSz 平文バッファの長さ
|
||||
\param siv S2VによるSIV出力(RFC 5297 2.4参照)。
|
||||
_Example_
|
||||
\code
|
||||
byte key[] = { some 32, 48, or 64 byte key };
|
||||
byte assoc[] = {0x01, 0x2, 0x3};
|
||||
byte nonce[] = {0x04, 0x5, 0x6};
|
||||
byte plainText[] = {0xDE, 0xAD, 0xBE, 0xEF};
|
||||
byte siv[AES_BLOCK_SIZE];
|
||||
byte cipherText[sizeof(plainText)];
|
||||
if (wc_AesSivEncrypt(key, sizeof(key), assoc, sizeof(assoc), nonce,
|
||||
sizeof(nonce), plainText, sizeof(plainText), siv, cipherText) != 0) {
|
||||
// failed to encrypt
|
||||
}
|
||||
\endcode
|
||||
\sa wc_AesSivDecrypt
|
||||
*/
|
||||
|
||||
|
||||
int wc_AesSivEncrypt(const byte* key, word32 keySz, const byte* assoc,
|
||||
word32 assocSz, const byte* nonce, word32 nonceSz,
|
||||
const byte* in, word32 inSz, byte* siv, byte* out);
|
||||
|
||||
/*!
|
||||
\ingroup AES
|
||||
\brief この機能は、RFC 5297に記載されているようにSIV(合成初期化ベクトル)復号化を実行する。
|
||||
\return 0 復号化に成功した場合
|
||||
\return BAD_FUNC_ARG キー、SIV、または出力バッファがNULLの場合。キーサイズが32,48、または64バイトの場合にも返されます。
|
||||
\return AES_SIV_AUTH_E S2Vによって派生したSIVが入力SIVと一致しない場合(RFC 5297 2.7を参照)。
|
||||
\return Other AESまたはCMAC操作が失敗した場合に返されるその他の負のエラー値。
|
||||
\param key 使用する鍵を含むバイトバッファ。
|
||||
\param keySz キーバッファの長さ(バイト単位)。
|
||||
\param assoc 追加の認証された関連データ(AD)。
|
||||
\param assocSz ADバッファのバイト数
|
||||
\param nonce 一度使用される数。ADと同じ方法で、基礎となるアルゴリズムによって使用されます。
|
||||
\param nonceSz バイト単位のNOCEバッファの長さ。
|
||||
\param in 復号化する暗号文バッファー。
|
||||
\param inSz 暗号文バッファの長さ
|
||||
\param siv 暗号文に付随するSIV(RFC 5297 2.4を参照)。
|
||||
_Example_
|
||||
\code
|
||||
byte key[] = { some 32, 48, or 64 byte key };
|
||||
byte assoc[] = {0x01, 0x2, 0x3};
|
||||
byte nonce[] = {0x04, 0x5, 0x6};
|
||||
byte cipherText[] = {0xDE, 0xAD, 0xBE, 0xEF};
|
||||
byte siv[AES_BLOCK_SIZE] = { the SIV that came with the ciphertext };
|
||||
byte plainText[sizeof(cipherText)];
|
||||
if (wc_AesSivDecrypt(key, sizeof(key), assoc, sizeof(assoc), nonce,
|
||||
sizeof(nonce), cipherText, sizeof(cipherText), siv, plainText) != 0) {
|
||||
// failed to decrypt
|
||||
}
|
||||
\endcode
|
||||
\sa wc_AesSivEncrypt
|
||||
*/
|
||||
|
||||
int wc_AesSivDecrypt(const byte* key, word32 keySz, const byte* assoc,
|
||||
word32 assocSz, const byte* nonce, word32 nonceSz,
|
||||
const byte* in, word32 inSz, byte* siv, byte* out);
|
||||
40
doc/dox_comments/header_files-ja/arc4.h
Normal file
40
doc/dox_comments/header_files-ja/arc4.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/*!
|
||||
\ingroup ARC4
|
||||
\brief この関数は、バッファ内の入力メッセージを暗号化し、出力バッファーに暗号文を配置するか、またはバッファーから暗号文を復号化したり、ARC4暗号化を使用して、出力バッファーOUTを出力したりします。この関数は暗号化と復号化の両方に使用されます。この方法が呼び出される可能性がある場合は、まずWC_ARC4SETKEYを使用してARC4構造を初期化する必要があります。
|
||||
\return none
|
||||
\param arc4 メッセージの処理に使用されるARC4構造へのポインタ
|
||||
\param out 処理されたメッセージを保存する出力バッファへのポインタ
|
||||
\param in プロセスするメッセージを含む入力バッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Arc4 enc;
|
||||
byte key[] = { key to use for encryption };
|
||||
wc_Arc4SetKey(&enc, key, sizeof(key));
|
||||
|
||||
byte plain[] = { plain text to encode };
|
||||
byte cipher[sizeof(plain)];
|
||||
byte decrypted[sizeof(plain)];
|
||||
// encrypt the plain into cipher
|
||||
wc_Arc4Process(&enc, cipher, plain, sizeof(plain));
|
||||
// decrypt the cipher
|
||||
wc_Arc4Process(&enc, decrypted, cipher, sizeof(cipher));
|
||||
\endcode
|
||||
\sa wc_Arc4SetKey
|
||||
*/
|
||||
int wc_Arc4Process(Arc4* arc4, byte* out, const byte* in, word32 length);
|
||||
|
||||
/*!
|
||||
\ingroup ARC4
|
||||
\brief この関数はARC4オブジェクトのキーを設定し、それを暗号として使用するために初期化します。WC_ARC4PROCESSを使用した暗号化に使用する前に呼び出される必要があります。
|
||||
\return none
|
||||
\param arc4 暗号化に使用されるARC4構造へのポインタ
|
||||
\param key ARC4構造を初期化するためのキー
|
||||
_Example_
|
||||
\code
|
||||
Arc4 enc;
|
||||
byte key[] = { initialize with key to use for encryption };
|
||||
wc_Arc4SetKey(&enc, key, sizeof(key));
|
||||
\endcode
|
||||
\sa wc_Arc4Process
|
||||
*/
|
||||
int wc_Arc4SetKey(Arc4* arc4, const byte* key, word32 length);
|
||||
0
doc/dox_comments/header_files-ja/asn.h
Normal file
0
doc/dox_comments/header_files-ja/asn.h
Normal file
143
doc/dox_comments/header_files-ja/asn_public.h
Normal file
143
doc/dox_comments/header_files-ja/asn_public.h
Normal file
@@ -0,0 +1,143 @@
|
||||
/*!
|
||||
\ingroup ASN
|
||||
\brief この関数はデフォルトの証明書を初期化します。デフォルトのオプション:version = 3(0x2)、sigtype = sha_with_rsa、issuer =空白、dayValid = 500、selfsigned = 1(true)発行者としての件名=空白
|
||||
\return none いいえ返します。
|
||||
_Example_
|
||||
\code
|
||||
Cert myCert;
|
||||
wc_InitCert(&myCert);
|
||||
\endcode
|
||||
\sa wc_MakeCert
|
||||
\sa wc_MakeCertReq
|
||||
*/
|
||||
int wc_InitCert(Cert*);
|
||||
|
||||
/*!
|
||||
\ingroup ASN
|
||||
\brief CA署名付き証明書を作成するために使用されます。被写体情報が入力された後に呼び出されました。この関数は、証明書入力からX509証明書V3 RSAまたはECCを作成します。その後、この証明書をDerbufferに書き込みます。証明書を生成するためのRSAKEYまたはECCKEYのいずれかを取ります。このメソッドが呼び出される前に、証明書をWC_INITCERTで初期化する必要があります。
|
||||
\return Success 指定された入力証明書からX509証明書を正常に行うと、生成された証明書のサイズを返します。
|
||||
\return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
|
||||
\return BUFFER_E 提供されたDerbufferが生成された証明書を保存するには小さすぎる場合に返されます
|
||||
\return Others 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。
|
||||
\param cert 初期化された証明書構造へのポインタ
|
||||
\param derBuffer 生成された証明書を保持するバッファへのポインタ
|
||||
\param derSz 証明書を保存するバッファのサイズ
|
||||
\param rsaKey 証明書の生成に使用されるRSAキーを含むRSAKEY構造体へのポインタ
|
||||
\param eccKey 証明書の生成に使用されるECCキーを含むECCKEY構造体へのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Cert myCert;
|
||||
wc_InitCert(&myCert);
|
||||
WC_RNG rng;
|
||||
//initialize rng;
|
||||
RsaKey key;
|
||||
//initialize key;
|
||||
byte * derCert = malloc(FOURK_BUF);
|
||||
word32 certSz;
|
||||
certSz = wc_MakeCert(&myCert, derCert, FOURK_BUF, &key, NULL, &rng);
|
||||
\endcode
|
||||
\sa wc_InitCert
|
||||
\sa wc_MakeCertReq
|
||||
*/
|
||||
int wc_MakeCert(Cert* cert, byte* derBuffer, word32 derSz, RsaKey* rsaKey,
|
||||
ecc_key* eccKey, WC_RNG* rng);
|
||||
|
||||
/*!
|
||||
\ingroup ASN
|
||||
\brief この関数は、入力証明書を使用して証明書署名要求を行い、出力をDerbufferに書き込みます。証明書要求を生成するRSAKEYまたはECCKEYのどちらかを取ります。この関数が証明書要求に署名するためにwc_signcert()を呼び出す必要があります。この関数の使用例については、WolfCryptテストアプリケーション(./wolfcrypt/test/test.c)を参照してください。
|
||||
\return Success 指定された入力証明書からX.509証明書要求を正常に行うと、生成された証明書要求のサイズを返します。
|
||||
\return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
|
||||
\return BUFFER_E 提供されたDerbufferが生成された証明書を保存するには小さすぎる場合に返されます
|
||||
\return Other 証明書要求生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。
|
||||
\param cert 初期化された証明書構造へのポインタ
|
||||
\param derBuffer 生成された証明書要求を保持するバッファへのポインタ
|
||||
\param derSz 証明書要求を保存するバッファのサイズ
|
||||
\param rsaKey 証明書要求を生成するために使用されるRSAキーを含むRSAKEY構造体へのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Cert myCert;
|
||||
// initialize myCert
|
||||
EccKey key;
|
||||
//initialize key;
|
||||
byte* derCert = (byte*)malloc(FOURK_BUF);
|
||||
|
||||
word32 certSz;
|
||||
certSz = wc_MakeCertReq(&myCert, derCert, FOURK_BUF, NULL, &key);
|
||||
\endcode
|
||||
\sa wc_InitCert
|
||||
\sa wc_MakeCert
|
||||
*/
|
||||
int wc_MakeCertReq(Cert* cert, byte* derBuffer, word32 derSz,
|
||||
RsaKey* rsaKey, ecc_key* eccKey);
|
||||
|
||||
/*!
|
||||
\ingroup ASN
|
||||
\brief この関数はバッファーに署名し、署名をバッファの最後に追加します。署名の種類を取ります。CA署名付き証明書を作成する場合は、wc_makecert()またはwc_makecertreq()の後に呼び出す必要があります。
|
||||
\return Success 証明書に正常に署名する場合は、CERTの新しいサイズ(署名を含む)を返します。
|
||||
\return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
|
||||
\return BUFFER_E 提供された証明書を保存するには提供されたバッファが小さすぎる場合に返されます。
|
||||
\return Other 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。
|
||||
\param requestSz 署名したことを要求している証明書本文のサイズ
|
||||
\param sType 作成する署名の種類。有効なオプションは次のとおりです.CTC_MD5WRSA、CTC_SHAWRSA、CTC_SHAWECDSA、CTC_SHA256WECDSA、ANDCTC_SHA256WRSA
|
||||
\param buffer 署名する証明書を含むバッファへのポインタ。成功:新たに署名された証明書を保持します
|
||||
\param buffSz 新たに署名された証明書を保存するバッファの(合計)サイズ
|
||||
\param rsaKey 証明書に署名するために使用されるRSAキーを含むRSAKEY構造体へのポインタ
|
||||
\param eccKey 証明書に署名するために使用されるECCキーを含むECCKey構造体へのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Cert myCert;
|
||||
byte* derCert = (byte*)malloc(FOURK_BUF);
|
||||
// initialize myCert, derCert
|
||||
RsaKey key;
|
||||
// initialize key;
|
||||
WC_RNG rng;
|
||||
// initialize rng
|
||||
|
||||
word32 certSz;
|
||||
certSz = wc_SignCert(myCert.bodySz, myCert.sigType,derCert,FOURK_BUF,
|
||||
&key, NULL,
|
||||
&rng);
|
||||
\endcode
|
||||
\sa wc_InitCert
|
||||
\sa wc_MakeCert
|
||||
*/
|
||||
int wc_SignCert(int requestSz, int sigType, byte* derBuffer,
|
||||
word32 derSz, RsaKey* rsaKey, ecc_key* eccKey, WC_RNG* rng);
|
||||
|
||||
/*!
|
||||
\ingroup ASN
|
||||
\brief この関数は、以前の2つの関数、wc_makecert、および自己署名のためのwc_signcertの組み合わせです(前の関数はCA要求に使用される場合があります)。証明書を作成してから、それに署名し、自己署名証明書を生成します。
|
||||
\return Success 証明書に正常に署名する場合は、CERTの新しいサイズを返します。
|
||||
\return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
|
||||
\return BUFFER_E 提供された証明書を保存するには提供されたバッファが小さすぎる場合に返されます。
|
||||
\return Other 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。
|
||||
\param cert 作成して署名する証明書へのポインタ
|
||||
\param buffer 署名付き証明書を保持するためのバッファへのポインタ
|
||||
\param buffSz 署名付き証明書を保存するバッファのサイズ
|
||||
\param key 証明書に署名するために使用されるRSAキーを含むRSAKEY構造体へのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Cert myCert;
|
||||
byte* derCert = (byte*)malloc(FOURK_BUF);
|
||||
// initialize myCert, derCert
|
||||
RsaKey key;
|
||||
// initialize key;
|
||||
WC_RNG rng;
|
||||
// initialize rng
|
||||
|
||||
word32 certSz;
|
||||
certSz = wc_MakeSelfCert(&myCert, derCert, FOURK_BUF, &key, NULL, &rng);
|
||||
\endcode
|
||||
\sa wc_InitCert
|
||||
\sa wc_MakeCert
|
||||
\sa wc_SignCert
|
||||
*/
|
||||
int wc_MakeSelfCert(Cert* cert, byte* derBuffer, word32 derSz, RsaKey* key,
|
||||
WC_RNG* rng);
|
||||
|
||||
/*!
|
||||
\ingroup ASN
|
||||
\brief この関数は、提供されたPEM ISSUERFILE内の証明書の発行者を発行者に設定します。また、証明書の自己署名属性をfalseに変更します。ISSUERFILEで指定された発行者は、CERT発行者を設定する前に確認されます。このメソッドは、署名の前にフィールドを設定するために使用されます。
|
||||
\return 0 証明書の発行者を正常に設定した
|
||||
\return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
|
||||
\return ASN_PARSE_E CERTヘッダーファイルの解析中にエラーがある場合は返されます。
|
||||
66
doc/dox_comments/header_files-ja/blake2.h
Normal file
66
doc/dox_comments/header_files-ja/blake2.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/*!
|
||||
\ingroup BLAKE2
|
||||
\brief この関数はBlake2 Hash関数で使用するためのBlake2b構造を初期化します。
|
||||
\return 0 Blake2B構造の初期化に成功し、ダイジェストサイズを設定したときに返されます。
|
||||
\param b2b 初期化するためにBlake2b構造へのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Blake2b b2b;
|
||||
// initialize Blake2b structure with 64 byte digest
|
||||
wc_InitBlake2b(&b2b, 64);
|
||||
\endcode
|
||||
\sa wc_Blake2bUpdate
|
||||
*/
|
||||
int wc_InitBlake2b(Blake2b* b2b, word32 digestSz);
|
||||
|
||||
/*!
|
||||
\ingroup BLAKE2
|
||||
\brief この関数は、与えられた入力データとBlake2Bハッシュを更新します。この関数は、wc_initblake2bの後に呼び出され、最後のハッシュ:wc_blake2bfinalの準備ができているまで繰り返します。
|
||||
\return 0 与えられたデータを使用してBlake2B構造を正常に更新すると返されます。
|
||||
\return -1 入力データの圧縮中に障害が発生した場合
|
||||
\param b2b 更新するBlake2b構造へのポインタ
|
||||
\param data 追加するデータを含むバッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
int ret;
|
||||
Blake2b b2b;
|
||||
// initialize Blake2b structure with 64 byte digest
|
||||
wc_InitBlake2b(&b2b, 64);
|
||||
|
||||
byte plain[] = { // initialize input };
|
||||
|
||||
ret = wc_Blake2bUpdate(&b2b, plain, sizeof(plain));
|
||||
if( ret != 0) {
|
||||
// error updating blake2b
|
||||
}
|
||||
\endcode
|
||||
\sa wc_InitBlake2b
|
||||
\sa wc_Blake2bFinal
|
||||
*/
|
||||
int wc_Blake2bUpdate(Blake2b* b2b, const byte* data, word32 sz);
|
||||
|
||||
/*!
|
||||
\ingroup BLAKE2
|
||||
\brief この関数は、以前に供給された入力データのBlake2bハッシュを計算します。出力ハッシュは長さREQUESTSZ、あるいは要求された場合はB2B構造のDigestSZを使用します。この関数は、wc_initblake2bの後に呼び出され、wc_blake2bupdateは必要な各入力データに対して処理されています。
|
||||
\return 0 Blake2B Hashの計算に成功したときに返されました
|
||||
\return -1 blake2bハッシュを解析している間に失敗がある場合
|
||||
\param b2b 更新するBlake2b構造へのポインタ
|
||||
\param final Blake2Bハッシュを保存するバッファへのポインタ。長さrequestszにする必要があります
|
||||
_Example_
|
||||
\code
|
||||
int ret;
|
||||
Blake2b b2b;
|
||||
byte hash[64];
|
||||
// initialize Blake2b structure with 64 byte digest
|
||||
wc_InitBlake2b(&b2b, 64);
|
||||
... // call wc_Blake2bUpdate to add data to hash
|
||||
|
||||
ret = wc_Blake2bFinal(&b2b, hash, 64);
|
||||
if( ret != 0) {
|
||||
// error generating blake2b hash
|
||||
}
|
||||
\endcode
|
||||
\sa wc_InitBlake2b
|
||||
\sa wc_Blake2bUpdate
|
||||
*/
|
||||
int wc_Blake2bFinal(Blake2b* b2b, byte* final, word32 requestSz);
|
||||
22
doc/dox_comments/header_files-ja/bn.h
Normal file
22
doc/dox_comments/header_files-ja/bn.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/*!
|
||||
\ingroup openSSL
|
||||
\brief この関数は、次の数学「R =(A ^ P)%M」を実行します。
|
||||
\return SSL_SUCCESS 数学操作をうまく実行します。
|
||||
\return SSL_FAILURE エラーケースに遭遇した場合
|
||||
\param r 結果を保持するための構造。
|
||||
\param a 電力で上げられる値。
|
||||
\param p によって上げる力。
|
||||
\param m 使用率
|
||||
_Example_
|
||||
\code
|
||||
WOLFSSL_BIGNUM r,a,p,m;
|
||||
int ret;
|
||||
// set big number values
|
||||
ret = wolfSSL_BN_mod_exp(r, a, p, m, NULL);
|
||||
// check ret value
|
||||
\endcode
|
||||
\sa wolfSSL_BN_new
|
||||
\sa wolfSSL_BN_free
|
||||
*/
|
||||
int wolfSSL_BN_mod_exp(WOLFSSL_BIGNUM *r, const WOLFSSL_BIGNUM *a,
|
||||
const WOLFSSL_BIGNUM *p, const WOLFSSL_BIGNUM *m, WOLFSSL_BN_CTX *ctx);
|
||||
128
doc/dox_comments/header_files-ja/camellia.h
Normal file
128
doc/dox_comments/header_files-ja/camellia.h
Normal file
@@ -0,0 +1,128 @@
|
||||
/*!
|
||||
\ingroup Camellia
|
||||
\brief この関数は、Camelliaオブジェクトのキーと初期化ベクトルを設定し、それを暗号として使用するために初期化します。
|
||||
\return 0 キーと初期化ベクトルを正常に設定すると返されます
|
||||
\return BAD_FUNC_ARG 入力引数の1つがエラー処理がある場合に返されます
|
||||
\return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
|
||||
\param cam キーとIVを設定する椿構造へのポインタ
|
||||
\param key 暗号化と復号化に使用する16,24、または32バイトのキーを含むバッファへのポインタ
|
||||
\param len 渡されたキーの長さ
|
||||
_Example_
|
||||
\code
|
||||
Camellia cam;
|
||||
byte key[32];
|
||||
// initialize key
|
||||
byte iv[16];
|
||||
// initialize iv
|
||||
if( wc_CamelliaSetKey(&cam, key, sizeof(key), iv) != 0) {
|
||||
// error initializing camellia structure
|
||||
}
|
||||
\endcode
|
||||
\sa wc_CamelliaEncryptDirect
|
||||
\sa wc_CamelliaDecryptDirect
|
||||
\sa wc_CamelliaCbcEncrypt
|
||||
\sa wc_CamelliaCbcDecrypt
|
||||
*/
|
||||
int wc_CamelliaSetKey(Camellia* cam,
|
||||
const byte* key, word32 len, const byte* iv);
|
||||
|
||||
/*!
|
||||
\ingroup Camellia
|
||||
\brief この関数は、Camelliaオブジェクトの初期化ベクトルを設定します。
|
||||
\return 0 キーと初期化ベクトルを正常に設定すると返されます
|
||||
\return BAD_FUNC_ARG 入力引数の1つがエラー処理がある場合に返されます
|
||||
\param cam IVを設定する椿構造へのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Camellia cam;
|
||||
byte iv[16];
|
||||
// initialize iv
|
||||
if( wc_CamelliaSetIV(&cam, iv) != 0) {
|
||||
// error initializing camellia structure
|
||||
}
|
||||
\endcode
|
||||
\sa wc_CamelliaSetKey
|
||||
*/
|
||||
int wc_CamelliaSetIV(Camellia* cam, const byte* iv);
|
||||
|
||||
/*!
|
||||
\ingroup Camellia
|
||||
\brief この機能は、提供されたCamelliaオブジェクトを使用して1ブロック暗号化します。それはバッファーの最初の16バイトブロックを解析し、暗号化結果をバッファアウトに格納します。この機能を使用する前に、WC_CAMELLIASETKEYを使用してCamelliaオブジェクトを初期化する必要があります。
|
||||
\return none いいえ返します。
|
||||
\param cam 暗号化に使用する椿構造へのポインタ
|
||||
\param out 暗号化されたブロックを保存するバッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Camellia cam;
|
||||
// initialize cam structure with key and iv
|
||||
byte plain[] = { // initialize with message to encrypt };
|
||||
byte cipher[16];
|
||||
|
||||
wc_CamelliaEncryptDirect(&ca, cipher, plain);
|
||||
\endcode
|
||||
\sa wc_CamelliaDecryptDirect
|
||||
*/
|
||||
int wc_CamelliaEncryptDirect(Camellia* cam, byte* out,
|
||||
const byte* in);
|
||||
|
||||
/*!
|
||||
\ingroup Camellia
|
||||
\brief この機能は、提供されたCamelliaオブジェクトを使用して1ブロック復号化します。それはバッファ内の最初の16バイトブロックを解析し、それを復号化し、結果をバッファアウトに格納します。この機能を使用する前に、WC_CAMELLIASETKEYを使用してCamelliaオブジェクトを初期化する必要があります。
|
||||
\return none いいえ返します。
|
||||
\param cam 暗号化に使用する椿構造へのポインタ
|
||||
\param out 復号化された平文ブロックを保存するバッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Camellia cam;
|
||||
// initialize cam structure with key and iv
|
||||
byte cipher[] = { // initialize with encrypted message to decrypt };
|
||||
byte decrypted[16];
|
||||
|
||||
wc_CamelliaDecryptDirect(&cam, decrypted, cipher);
|
||||
\endcode
|
||||
\sa wc_CamelliaEncryptDirect
|
||||
*/
|
||||
int wc_CamelliaDecryptDirect(Camellia* cam, byte* out,
|
||||
const byte* in);
|
||||
|
||||
/*!
|
||||
\ingroup Camellia
|
||||
\brief この関数は、バッファーの平文を暗号化し、その出力をバッファOUTに格納します。暗号ブロックチェーン(CBC)を使用してCamelliaを使用してこの暗号化を実行します。
|
||||
\return none いいえ返します。
|
||||
\param cam 暗号化に使用する椿構造へのポインタ
|
||||
\param out 暗号化された暗号文を保存するバッファへのポインタ
|
||||
\param in 暗号化する平文を含むバッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Camellia cam;
|
||||
// initialize cam structure with key and iv
|
||||
byte plain[] = { // initialize with encrypted message to decrypt };
|
||||
byte cipher[sizeof(plain)];
|
||||
|
||||
wc_CamelliaCbcEncrypt(&cam, cipher, plain, sizeof(plain));
|
||||
\endcode
|
||||
\sa wc_CamelliaCbcDecrypt
|
||||
*/
|
||||
int wc_CamelliaCbcEncrypt(Camellia* cam,
|
||||
byte* out, const byte* in, word32 sz);
|
||||
|
||||
/*!
|
||||
\ingroup Camellia
|
||||
\brief この関数は、バッファ内の暗号文を復号化し、その出力をバッファOUTに格納します。暗号ブロックチェーン(CBC)を搭載したCamelliaを使用してこの復号化を実行します。
|
||||
\return none いいえ返します。
|
||||
\param cam 暗号化に使用する椿構造へのポインタ
|
||||
\param out 復号化されたメッセージを保存するバッファへのポインタ
|
||||
\param in 暗号化された暗号文を含むバッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
Camellia cam;
|
||||
// initialize cam structure with key and iv
|
||||
byte cipher[] = { // initialize with encrypted message to decrypt };
|
||||
byte decrypted[sizeof(cipher)];
|
||||
|
||||
wc_CamelliaCbcDecrypt(&cam, decrypted, cipher, sizeof(cipher));
|
||||
\endcode
|
||||
\sa wc_CamelliaCbcEncrypt
|
||||
*/
|
||||
int wc_CamelliaCbcDecrypt(Camellia* cam,
|
||||
byte* out, const byte* in, word32 sz);
|
||||
67
doc/dox_comments/header_files-ja/chacha.h
Normal file
67
doc/dox_comments/header_files-ja/chacha.h
Normal file
@@ -0,0 +1,67 @@
|
||||
/*!
|
||||
\ingroup ChaCha
|
||||
\brief この関数はChachaオブジェクトの初期化ベクトル(nonce)を設定し、暗号として使用するために初期化します。WC_CHACHA_SETKEYを使用して、キーが設定された後に呼び出されるべきです。暗号化の各ラウンドに差し違いを使用する必要があります。
|
||||
\return 0 初期化ベクトルを正常に設定すると返されます
|
||||
\return BAD_FUNC_ARG CTX入力引数の処理中にエラーが発生した場合
|
||||
\param ctx IVを設定するChacha構造へのポインタ
|
||||
\param inIv Chacha構造を初期化するための12バイトの初期化ベクトルを含むバッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
ChaCha enc;
|
||||
// initialize enc with wc_Chacha_SetKey
|
||||
byte iv[12];
|
||||
// initialize iv
|
||||
if( wc_Chacha_SetIV(&enc, iv, 0) != 0) {
|
||||
// error initializing ChaCha structure
|
||||
}
|
||||
\endcode
|
||||
\sa wc_Chacha_SetKey
|
||||
\sa wc_Chacha_Process
|
||||
*/
|
||||
int wc_Chacha_SetIV(ChaCha* ctx, const byte* inIv, word32 counter);
|
||||
|
||||
/*!
|
||||
\ingroup ChaCha
|
||||
\brief この関数は、バッファ入力からテキストを処理し、暗号化または復号化し、結果をバッファ出力に格納します。
|
||||
\return 0 入力の暗号化または復号化に成功したときに返されます
|
||||
\return BAD_FUNC_ARG CTX入力引数の処理中にエラーが発生した場合
|
||||
\param ctx IVを設定するChacha構造へのポインタ
|
||||
\param output 出力暗号文または復号化された平文を保存するバッファへのポインタ
|
||||
\param input 暗号化する入力平文を含むバッファへのポインタまたは復号化する入力暗号文
|
||||
_Example_
|
||||
\code
|
||||
ChaCha enc;
|
||||
// initialize enc with wc_Chacha_SetKey and wc_Chacha_SetIV
|
||||
|
||||
byte plain[] = { // initialize plaintext };
|
||||
byte cipher[sizeof(plain)];
|
||||
if( wc_Chacha_Process(&enc, cipher, plain, sizeof(plain)) != 0) {
|
||||
// error processing ChaCha cipher
|
||||
}
|
||||
\endcode
|
||||
\sa wc_Chacha_SetKey
|
||||
\sa wc_Chacha_Process
|
||||
*/
|
||||
int wc_Chacha_Process(ChaCha* ctx, byte* cipher, const byte* plain,
|
||||
word32 msglen);
|
||||
|
||||
/*!
|
||||
\ingroup ChaCha
|
||||
\brief この関数はChachaオブジェクトのキーを設定し、それを暗号として使用するために初期化します。NONCEをWC_CHACHA_SETIVで設定する前に、WC_CHACHA_PROCESSを使用した暗号化に使用する前に呼び出す必要があります。
|
||||
\return 0 キーの設定に成功したときに返されます
|
||||
\return BAD_FUNC_ARG CTX入力引数の処理中にエラーが発生した場合、またはキーが16または32バイトの長さがある場合
|
||||
\param ctx キーを設定するChacha構造へのポインタ
|
||||
\param key Chacha構造を初期化するための16または32バイトのキーを含むバッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
ChaCha enc;
|
||||
byte key[] = { // initialize key };
|
||||
|
||||
if( wc_Chacha_SetKey(&enc, key, sizeof(key)) != 0) {
|
||||
// error initializing ChaCha structure
|
||||
}
|
||||
\endcode
|
||||
\sa wc_Chacha_SetIV
|
||||
\sa wc_Chacha_Process
|
||||
*/
|
||||
int wc_Chacha_SetKey(ChaCha* ctx, const byte* key, word32 keySz);
|
||||
87
doc/dox_comments/header_files-ja/chacha20_poly1305.h
Normal file
87
doc/dox_comments/header_files-ja/chacha20_poly1305.h
Normal file
@@ -0,0 +1,87 @@
|
||||
/*!
|
||||
\ingroup ChaCha20Poly1305
|
||||
\brief この関数は、Chacha20 Stream暗号を使用して、Chacha20 Stream暗号を使用して、Output BufferTextに入力メッセージ、InPleaintextを暗号化します。また、Poly-1305認証(暗号テキスト)を実行し、生成した認証タグを出力バッファOutauthTagに格納します。
|
||||
\return 0 メッセージの暗号化に成功したら返されました
|
||||
\return BAD_FUNC_ARG 暗号化プロセス中にエラーがある場合
|
||||
\param inKey 暗号化に使用する32バイトのキーを含むバッファへのポインタ
|
||||
\param inIv 暗号化に使用する12バイトのIVを含むバッファへのポインタ
|
||||
\param inAAD 任意の長さの追加認証データ(AAD)を含むバッファへのポインタ
|
||||
\param inAADLen 入力AADの長さ
|
||||
\param inPlaintext 暗号化する平文を含むバッファへのポインタ
|
||||
\param inPlaintextLen 暗号化するプレーンテキストの長さ
|
||||
\param outCiphertext 暗号文を保存するバッファーへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
byte key[] = { // initialize 32 byte key };
|
||||
byte iv[] = { // initialize 12 byte key };
|
||||
byte inAAD[] = { // initialize AAD };
|
||||
|
||||
byte plain[] = { // initialize message to encrypt };
|
||||
byte cipher[sizeof(plain)];
|
||||
byte authTag[16];
|
||||
|
||||
int ret = wc_ChaCha20Poly1305_Encrypt(key, iv, inAAD, sizeof(inAAD),
|
||||
plain, sizeof(plain), cipher, authTag);
|
||||
|
||||
if(ret != 0) {
|
||||
// error running encrypt
|
||||
}
|
||||
\endcode
|
||||
\sa wc_ChaCha20Poly1305_Decrypt
|
||||
\sa wc_ChaCha_*
|
||||
\sa wc_Poly1305*
|
||||
*/
|
||||
|
||||
int wc_ChaCha20Poly1305_Encrypt(
|
||||
const byte inKey[CHACHA20_POLY1305_AEAD_KEYSIZE],
|
||||
const byte inIV[CHACHA20_POLY1305_AEAD_IV_SIZE],
|
||||
const byte* inAAD, const word32 inAADLen,
|
||||
const byte* inPlaintext, const word32 inPlaintextLen,
|
||||
byte* outCiphertext,
|
||||
byte outAuthTag[CHACHA20_POLY1305_AEAD_AUTHTAG_SIZE]);
|
||||
|
||||
/*!
|
||||
\ingroup ChaCha20Poly1305
|
||||
\brief この関数は、Chacha20 Stream暗号を使用して、Chacha20 Stream暗号を使用して、出力バッファ、OutpleAntextに入力された暗号文の入力を復号化します。また、Poly-1305認証を実行し、指定されたINAUTHTAGをINAADで生成された認証(任意の長さの追加認証データ)と比較します。注:生成された認証タグが提供された認証タグと一致しない場合、テキストは復号化されません。
|
||||
\return 0 メッセージの復号化に成功したときに返されました
|
||||
\return BAD_FUNC_ARG 関数引数のいずれかが予想されるものと一致しない場合に返されます
|
||||
\return MAC_CMP_FAILED_E 生成された認証タグが提供されているINAUTHTAGと一致しない場合に返されます。
|
||||
\param inKey 復号化に使用する32バイトのキーを含むバッファへのポインタ
|
||||
\param inIv 復号化に使用する12バイトのIVを含むバッファへのポインタ
|
||||
\param inAAD 任意の長さの追加認証データ(AAD)を含むバッファへのポインタ
|
||||
\param inAADLen 入力AADの長さ
|
||||
\param inCiphertext 復号化する暗号文を含むバッファへのポインタ
|
||||
\param outCiphertextLen 復号化する暗号文の長さ
|
||||
\param inAuthTag 認証のための16バイトのダイジェストを含むバッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
byte key[] = { // initialize 32 byte key };
|
||||
byte iv[] = { // initialize 12 byte key };
|
||||
byte inAAD[] = { // initialize AAD };
|
||||
|
||||
byte cipher[] = { // initialize with received ciphertext };
|
||||
byte authTag[16] = { // initialize with received authentication tag };
|
||||
|
||||
byte plain[sizeof(cipher)];
|
||||
|
||||
int ret = wc_ChaCha20Poly1305_Decrypt(key, iv, inAAD, sizeof(inAAD),
|
||||
cipher, sizeof(cipher), plain, authTag);
|
||||
|
||||
if(ret == MAC_CMP_FAILED_E) {
|
||||
// error during authentication
|
||||
} else if( ret != 0) {
|
||||
// error with function arguments
|
||||
}
|
||||
\endcode
|
||||
\sa wc_ChaCha20Poly1305_Encrypt
|
||||
\sa wc_ChaCha_*
|
||||
\sa wc_Poly1305*
|
||||
*/
|
||||
|
||||
int wc_ChaCha20Poly1305_Decrypt(
|
||||
const byte inKey[CHACHA20_POLY1305_AEAD_KEYSIZE],
|
||||
const byte inIV[CHACHA20_POLY1305_AEAD_IV_SIZE],
|
||||
const byte* inAAD, const word32 inAADLen,
|
||||
const byte* inCiphertext, const word32 inCiphertextLen,
|
||||
const byte inAuthTag[CHACHA20_POLY1305_AEAD_AUTHTAG_SIZE],
|
||||
byte* outPlaintext);
|
||||
158
doc/dox_comments/header_files-ja/coding.h
Normal file
158
doc/dox_comments/header_files-ja/coding.h
Normal file
@@ -0,0 +1,158 @@
|
||||
/*!
|
||||
\ingroup Base_Encoding
|
||||
\brief この機能は、与えられたBASS64符号化入力、IN、および出力バッファを出力バッファOUTに格納します。また、変数outlen内の出力バッファに書き込まれたサイズも設定します。
|
||||
\return 0 Base64エンコード入力の復号化に成功したときに返されます
|
||||
\return BAD_FUNC_ARG 復号化された入力を保存するには、出力バッファが小さすぎる場合は返されます。
|
||||
\return ASN_INPUT_E 入力バッファ内の文字がBASE64範囲([A-ZA-Z0-9 + / =])の外側にある場合、またはBASE64エンコード入力に無効な行が終了した場合
|
||||
\param in デコードする入力バッファへのポインタ
|
||||
\param inLen デコードする入力バッファの長さ
|
||||
\param out デコードされたメッセージを保存する出力バッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
byte encoded[] = { // initialize text to decode };
|
||||
byte decoded[sizeof(encoded)];
|
||||
// requires at least (sizeof(encoded) * 3 + 3) / 4 room
|
||||
|
||||
int outLen = sizeof(decoded);
|
||||
|
||||
if( Base64_Decode(encoded,sizeof(encoded), decoded, &outLen) != 0 ) {
|
||||
// error decoding input buffer
|
||||
}
|
||||
\endcode
|
||||
\sa Base64_Encode
|
||||
\sa Base16_Decode
|
||||
*/
|
||||
int Base64_Decode(const byte* in, word32 inLen, byte* out,
|
||||
word32* outLen);
|
||||
|
||||
/*!
|
||||
\ingroup Base_Encoding
|
||||
\brief この機能は与えられた入力を符号化し、符号化結果を出力バッファOUTに格納します。エスケープ%0A行末の代わりに、従来の '\ N'行の終わりを持つデータを書き込みます。正常に完了すると、この機能はまた、出力バッファに書き込まれたバイト数に統一されます。
|
||||
\return 0 Base64エンコード入力の復号化に成功したときに返されます
|
||||
\return BAD_FUNC_ARG 出力バッファが小さすぎてエンコードされた入力を保存する場合は返されます。
|
||||
\return BUFFER_E 出力バッファがエンコード中に部屋の外に実行された場合に返されます。
|
||||
\param in エンコードする入力バッファへのポインタ
|
||||
\param inLen エンコードする入力バッファの長さ
|
||||
\param out エンコードされたメッセージを保存する出力バッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
byte plain[] = { // initialize text to encode };
|
||||
byte encoded[MAX_BUFFER_SIZE];
|
||||
|
||||
int outLen = sizeof(encoded);
|
||||
|
||||
if( Base64_Encode(plain, sizeof(plain), encoded, &outLen) != 0 ) {
|
||||
// error encoding input buffer
|
||||
}
|
||||
\endcode
|
||||
\sa Base64_EncodeEsc
|
||||
\sa Base64_Decode
|
||||
*/
|
||||
|
||||
int Base64_Encode(const byte* in, word32 inLen, byte* out,
|
||||
word32* outLen);
|
||||
|
||||
/*!
|
||||
\ingroup Base_Encoding
|
||||
\brief この機能は与えられた入力を符号化し、符号化結果を出力バッファOUTに格納します。それは '\ n "行の終わりではなく、%0aエスケープ行の終わりを持つデータを書き込みます。正常に完了すると、この機能はまた、出力バッファに書き込まれたバイト数に統一されます。
|
||||
\return 0 Base64エンコード入力の復号化に成功したときに返されます
|
||||
\return BAD_FUNC_ARG 出力バッファが小さすぎてエンコードされた入力を保存する場合は返されます。
|
||||
\return BUFFER_E 出力バッファがエンコード中に部屋の外に実行された場合に返されます。
|
||||
\return ASN_INPUT_E 入力メッセージのデコードの処理中にエラーが発生した場合
|
||||
\param in エンコードする入力バッファへのポインタ
|
||||
\param inLen エンコードする入力バッファの長さ
|
||||
\param out エンコードされたメッセージを保存する出力バッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
byte plain[] = { // initialize text to encode };
|
||||
byte encoded[MAX_BUFFER_SIZE];
|
||||
|
||||
int outLen = sizeof(encoded);
|
||||
|
||||
if( Base64_EncodeEsc(plain, sizeof(plain), encoded, &outLen) != 0 ) {
|
||||
// error encoding input buffer
|
||||
}
|
||||
\endcode
|
||||
\sa Base64_Encode
|
||||
\sa Base64_Decode
|
||||
*/
|
||||
int Base64_EncodeEsc(const byte* in, word32 inLen, byte* out,
|
||||
word32* outLen);
|
||||
|
||||
/*!
|
||||
\ingroup Base_Encoding
|
||||
\brief この機能は与えられた入力を符号化し、符号化結果を出力バッファOUTに格納します。それは新しい行なしでデータを書き込みます。正常に完了すると、この関数はまた、出力バッファに書き込まれたバイト数に統一されたものを設定します
|
||||
\return 0 Base64エンコード入力の復号化に成功したときに返されます
|
||||
\return BAD_FUNC_ARG 出力バッファが小さすぎてエンコードされた入力を保存する場合は返されます。
|
||||
\return BUFFER_E 出力バッファがエンコード中に部屋の外に実行された場合に返されます。
|
||||
\return ASN_INPUT_E 入力メッセージのデコードの処理中にエラーが発生した場合
|
||||
\param in エンコードする入力バッファへのポインタ
|
||||
\param inLen エンコードする入力バッファの長さ
|
||||
\param out エンコードされたメッセージを保存する出力バッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
byte plain[] = { // initialize text to encode };
|
||||
byte encoded[MAX_BUFFER_SIZE];
|
||||
int outLen = sizeof(encoded);
|
||||
if( Base64_Encode_NoNl(plain, sizeof(plain), encoded, &outLen) != 0 ) {
|
||||
// error encoding input buffer
|
||||
}
|
||||
\endcode
|
||||
\sa Base64_Encode
|
||||
\sa Base64_Decode
|
||||
*/
|
||||
|
||||
int Base64_Encode_NoNl(const byte* in, word32 inLen, byte* out,
|
||||
word32* outLen);
|
||||
|
||||
/*!
|
||||
\ingroup Base_Encoding
|
||||
\brief この機能は、与えられたBASE16符号化入力、IN、および出力バッファへの結果を記憶する。また、変数outlen内の出力バッファに書き込まれたサイズも設定します。
|
||||
\return 0 Base16エンコード入力の復号にうまく復号化したときに返されます
|
||||
\return BAD_FUNC_ARG 出力バッファが復号化された入力を保存するにも小さすぎる場合、または入力長が2つの倍数でない場合に返されます。
|
||||
\return ASN_INPUT_E 入力バッファ内の文字がBASE16の範囲外にある場合は返されます([0-9a-f])
|
||||
\param in デコードする入力バッファへのポインタ
|
||||
\param inLen デコードする入力バッファの長さ
|
||||
\param out デコードされたメッセージを保存する出力バッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
byte encoded[] = { // initialize text to decode };
|
||||
byte decoded[sizeof(encoded)];
|
||||
int outLen = sizeof(decoded);
|
||||
|
||||
if( Base16_Decode(encoded,sizeof(encoded), decoded, &outLen) != 0 ) {
|
||||
// error decoding input buffer
|
||||
}
|
||||
\endcode
|
||||
\sa Base64_Encode
|
||||
\sa Base64_Decode
|
||||
\sa Base16_Encode
|
||||
*/
|
||||
|
||||
int Base16_Decode(const byte* in, word32 inLen, byte* out, word32* outLen);
|
||||
|
||||
/*!
|
||||
\ingroup Base_Encoding
|
||||
\brief BASE16出力へのエンコード入力。
|
||||
\return 0 成功
|
||||
\return BAD_FUNC_ARG IN、OUT、またはoutlenがNULLの場合、またはoutlenがInlen Plus 1を超えている場合は返します。
|
||||
\param in エンコードされる入力バッファへのポインタ。
|
||||
\param inLen 入力バッファの長さ
|
||||
\param out 出力バッファへのポインタ。
|
||||
_Example_
|
||||
\code
|
||||
byte in[] = { // Contents of something to be encoded };
|
||||
byte out[NECESSARY_OUTPUT_SIZE];
|
||||
word32 outSz = sizeof(out);
|
||||
|
||||
if(Base16_Encode(in, sizeof(in), out, &outSz) != 0)
|
||||
{
|
||||
// Handle encode error
|
||||
}
|
||||
\endcode
|
||||
\sa Base64_Encode
|
||||
\sa Base64_Decode
|
||||
\sa Base16_Decode
|
||||
*/
|
||||
|
||||
int Base16_Encode(const byte* in, word32 inLen, byte* out, word32* outLen);
|
||||
47
doc/dox_comments/header_files-ja/compress.h
Normal file
47
doc/dox_comments/header_files-ja/compress.h
Normal file
@@ -0,0 +1,47 @@
|
||||
/*!
|
||||
\ingroup Compression
|
||||
\brief この関数は、ハフマン符号化を用いて与えられた入力データを圧縮し、出力をOUTに格納する。出力バッファは、圧縮が可能でないことが存在するため、出力バッファが入力バッファよりも大きいはずです。これはまだルックアップテーブルを必要とします。出力バッファに対してSRCSZ + 0.1%+ 12を割り当てることをお勧めします。
|
||||
\return On 入力データの圧縮に成功し、出力バッファに格納されているバイト数を返します。
|
||||
\return COMPRESS_INIT_E 圧縮のためにストリームの初期化中にエラーがある場合
|
||||
\return COMPRESS_E 圧縮中にエラーが発生した場合は返されます
|
||||
\param out 圧縮データを格納する出力バッファへのポインタ
|
||||
\param outSz 出力バッファで保存されているサイズ
|
||||
\param in 圧縮するメッセージを含むバッファへのポインタ
|
||||
\param inSz 圧縮する入力メッセージのサイズ
|
||||
_Example_
|
||||
\code
|
||||
byte message[] = { // initialize text to compress };
|
||||
byte compressed[(sizeof(message) + sizeof(message) * .001 + 12 )];
|
||||
// Recommends at least srcSz + .1% + 12
|
||||
|
||||
if( wc_Compress(compressed, sizeof(compressed), message, sizeof(message),
|
||||
0) != 0){
|
||||
// error compressing data
|
||||
}
|
||||
\endcode
|
||||
\sa wc_DeCompress
|
||||
*/
|
||||
int wc_Compress(byte* out, word32 outSz, const byte* in, word32 inSz, word32 flags);
|
||||
|
||||
/*!
|
||||
\ingroup Compression
|
||||
\brief この関数は、ハフマン符号化を用いて所定の圧縮データを解凍し、出力をOUTに格納する。
|
||||
\return Success 入力データの解凍に成功した場合は、出力バッファに格納されているバイト数を返します。
|
||||
\return COMPRESS_INIT_E: 圧縮のためにストリームの初期化中にエラーがある場合
|
||||
\return COMPRESS_E: 圧縮中にエラーが発生した場合は返されます
|
||||
\param out 解凍されたデータを格納する出力バッファへのポインタ
|
||||
\param outSz 出力バッファで保存されているサイズ
|
||||
\param in 解凍するメッセージを含むバッファへのポインタ
|
||||
_Example_
|
||||
\code
|
||||
byte compressed[] = { // initialize compressed message };
|
||||
byte decompressed[MAX_MESSAGE_SIZE];
|
||||
|
||||
if( wc_DeCompress(decompressed, sizeof(decompressed),
|
||||
compressed, sizeof(compressed)) != 0 ) {
|
||||
// error decompressing data
|
||||
}
|
||||
\endcode
|
||||
\sa wc_Compress
|
||||
*/
|
||||
int wc_DeCompress(byte* out, word32 outSz, const byte* in, word32 inSz);
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user